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

📄 abnf.c

📁 mgcp协议源代码和测试程序,还有一个编译器
💻 C
📖 第 1 页 / 共 5 页
字号:
int DE_Hexseq_Hexseq(TCtx *ctx){  /* Token Element: HEXSEQ */  if (ParseToken(ctx, 1, 1, DE_Hexseq) != OK)    return FAIL;  /* String Element: :: */  if (ParseString(ctx, 1, 1, "::") != OK)    return FAIL;  /* Token Element: HEXSEQ */  if (ParseToken(ctx, 0, 1, DE_Hexseq) != OK)    return FAIL;  return OK;}int DE_Colon_Hexseq(TCtx *ctx){  /* String Element: :: */  if (ParseString(ctx, 1, 1, "::") != OK)    return FAIL;  /* Token Element: HEXSEQ */  if (ParseToken(ctx, 0, 1, DE_Hexseq) != OK)    return FAIL;  return OK;}int DE_Hexseq(TCtx *ctx){  /* Token Element: HEX4 */  if (ParseToken(ctx, 1, 1, DE_Hex4) != OK)    return FAIL;  /* String Element: : */  if (ParseString(ctx, 0, 655, ":") != OK)    return FAIL;  /* Token Element: HEX4 */  if (ParseToken(ctx, 0, 655, DE_Hex4) != OK)    return FAIL;  return OK;}int DE_Hex4(TCtx *ctx){  /* Token Element: HEXDIG */  if (ParseToken(ctx, 1, 4, DE_HEXDIG) != OK)    return FAIL;  return OK;}int DE_ProfileName(TCtx *ctx){  /* Token Element: VCHAR */  if (ParseToken(ctx, 1, 1, DE_VCHAR) != OK)    return FAIL;  /* Token Element: WSP_VCHAR */  if (ParseToken(ctx, 0, 655, DE_Wsp_Vchar) != OK)    return FAIL;  return OK;}int DE_Wsp_Vchar(TCtx *ctx){  CtxSave(Wsp_Vchar,ctx);  /* Token Element: WSP */  if (ParseToken(ctx, 1, 1, DE_WSP) == OK)    return OK;  CtxRestore(ctx, Wsp_Vchar);  /* Token Element: VCHAR */  if (ParseToken(ctx, 1, 1, DE_VCHAR) == OK)    return OK;  return FAIL;}int DE_MGCPParameter(TCtx *ctx, TMGCPParameter *MGCPParameter){  CtxSave(MGCPParameter, ctx);  /* ParamResponseAck */  if (DE_ParamResponseAck(ctx, &MGCPParameter->u.ParamResponseAck) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamResponseAck;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamBearerInformation */  if (DE_ParamBearerInformation(ctx, &MGCPParameter->u.ParamBearerInformation) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamBearerInformation;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamCallId */  if (DE_ParamCallId(ctx, &MGCPParameter->u.ParamCallId) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamCallId;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamConnectionId */  if (DE_ParamConnectionId(ctx, &MGCPParameter->u.ParamConnectionId) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamConnectionId;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamNotifiedEntity */  if (DE_ParamNotifiedEntity(ctx, &MGCPParameter->u.ParamNotifiedEntity) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamNotifiedEntity;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamRequestIdentifier */  if (DE_ParamRequestIdentifier(ctx, &MGCPParameter->u.ParamRequestIdentifier) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamRequestIdentifier;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamLocalConnectionOptions */  if (DE_ParamLocalConnectionOptions(ctx, &MGCPParameter->u.ParamLocalConnectionOptions) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamLocalConnectionOptions;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamConnectionMode */  if (DE_ParamConnectionMode(ctx, &MGCPParameter->u.ParamConnectionMode) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamConnectionMode;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamRequestedEvents */  if (DE_ParamRequestedEvents(ctx, &MGCPParameter->u.ParamRequestedEvents) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamRequestedEvents;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamSignalRequests */  if (DE_ParamSignalRequests(ctx, &MGCPParameter->u.ParamSignalRequests) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamSignalRequests;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamDigitMap */  if (DE_ParamDigitMap(ctx, &MGCPParameter->u.ParamDigitMap) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamDigitMap;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamObservedEvents */  if (DE_ParamObservedEvents(ctx, &MGCPParameter->u.ParamObservedEvents) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamObservedEvents;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamConnectionParameters */  if (DE_ParamConnectionParameters(ctx, &MGCPParameter->u.ParamConnectionParameters) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamConnectionParameters;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamReasonCode */  if (DE_ParamReasonCode(ctx, &MGCPParameter->u.ParamReasonCode) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamReasonCode;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamSpecificEndpointID */  if (DE_ParamSpecificEndpointID(ctx, &MGCPParameter->u.ParamSpecificEndpointID) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamSpecificEndpointID;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamSecondEndpointID */  if (DE_ParamSecondEndpointID(ctx, &MGCPParameter->u.ParamSecondEndpointID) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamSecondEndpointID;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamSecondConnectionID */  if (DE_ParamSecondConnectionID(ctx, &MGCPParameter->u.ParamSecondConnectionID) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamSecondConnectionID;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamRequestedInfo */  if (DE_ParamRequestedInfo(ctx, &MGCPParameter->u.ParamRequestedInfo) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamRequestedInfo;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamQuarantineHandling */  if (DE_ParamQuarantineHandling(ctx, &MGCPParameter->u.ParamQuarantineHandling) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamQuarantineHandling;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamDetectEvents */  if (DE_ParamDetectEvents(ctx, &MGCPParameter->u.ParamDetectEvents) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamDetectEvents;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamRestartMethod */  if (DE_ParamRestartMethod(ctx, &MGCPParameter->u.ParamRestartMethod) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamRestartMethod;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamRestartDelay */  if (DE_ParamRestartDelay(ctx, &MGCPParameter->u.ParamRestartDelay) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamRestartDelay;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamCapabilities */  if (DE_ParamCapabilities(ctx, &MGCPParameter->u.ParamCapabilities) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamCapabilities;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamEventStates */  if (DE_ParamEventStates(ctx, &MGCPParameter->u.ParamEventStates) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamEventStates;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamPackageList */  if (DE_ParamPackageList(ctx, &MGCPParameter->u.ParamPackageList) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamPackageList;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ParamMaxMGCPDatagram */  if (DE_ParamMaxMGCPDatagram(ctx, &MGCPParameter->u.ParamMaxMGCPDatagram) == OK)  {    MGCPParameter->iType = MGCPParameter_ParamMaxMGCPDatagram;    return OK;  }  CtxRestore(ctx, MGCPParameter);  /* ExtendedParameter */  if (DE_ExtendedParameter(ctx, &MGCPParameter->u.ExtendedParameter) == OK)  {    MGCPParameter->iType = MGCPParameter_ExtendedParameter;    return OK;  }  return FAIL;}int EN_MGCPParameter(TCtx *ctx, TMGCPParameter *MGCPParameter){  switch (MGCPParameter->iType)  {    /* ParamResponseAck */    case MGCPParameter_ParamResponseAck:      return EN_ParamResponseAck(ctx, &MGCPParameter->u.ParamResponseAck);    /* ParamBearerInformation */    case MGCPParameter_ParamBearerInformation:      return EN_ParamBearerInformation(ctx, &MGCPParameter->u.ParamBearerInformation);    /* ParamCallId */    case MGCPParameter_ParamCallId:      return EN_ParamCallId(ctx, &MGCPParameter->u.ParamCallId);    /* ParamConnectionId */    case MGCPParameter_ParamConnectionId:      return EN_ParamConnectionId(ctx, &MGCPParameter->u.ParamConnectionId);    /* ParamNotifiedEntity */    case MGCPParameter_ParamNotifiedEntity:      return EN_ParamNotifiedEntity(ctx, &MGCPParameter->u.ParamNotifiedEntity);    /* ParamRequestIdentifier */    case MGCPParameter_ParamRequestIdentifier:      return EN_ParamRequestIdentifier(ctx, &MGCPParameter->u.ParamRequestIdentifier);    /* ParamLocalConnectionOptions */    case MGCPParameter_ParamLocalConnectionOptions:      return EN_ParamLocalConnectionOptions(ctx, &MGCPParameter->u.ParamLocalConnectionOptions);    /* ParamConnectionMode */    case MGCPParameter_ParamConnectionMode:      return EN_ParamConnectionMode(ctx, &MGCPParameter->u.ParamConnectionMode);    /* ParamRequestedEvents */    case MGCPParameter_ParamRequestedEvents:      return EN_ParamRequestedEvents(ctx, &MGCPParameter->u.ParamRequestedEvents);    /* ParamSignalRequests */    case MGCPParameter_ParamSignalRequests:      return EN_ParamSignalRequests(ctx, &MGCPParameter->u.ParamSignalRequests);    /* ParamDigitMap */    case MGCPParameter_ParamDigitMap:      return EN_ParamDigitMap(ctx, &MGCPParameter->u.ParamDigitMap);    /* ParamObservedEvents */    case MGCPParameter_ParamObservedEvents:      return EN_ParamObservedEvents(ctx, &MGCPParameter->u.ParamObservedEvents);    /* ParamConnectionParameters */    case MGCPParameter_ParamConnectionParameters:      return EN_ParamConnectionParameters(ctx, &MGCPParameter->u.ParamConnectionParameters);    /* ParamReasonCode */    case MGCPParameter_ParamReasonCode:      return EN_ParamReasonCode(ctx, &MGCPParameter->u.ParamReasonCode);    /* ParamSpecificEndpointID */    case MGCPParameter_ParamSpecificEndpointID:      return EN_ParamSpecificEndpointID(ctx, &MGCPParameter->u.ParamSpecificEndpointID);    /* ParamSecondEndpointID */    case MGCPParameter_ParamSecondEndpointID:      return EN_ParamSecondEndpointID(ctx, &MGCPParameter->u.ParamSecondEndpointID);    /* ParamSecondConnectionID */    case MGCPParameter_ParamSecondConnectionID:      return EN_ParamSecondConnectionID(ctx, &MGCPParameter->u.ParamSecondConnectionID);    /* ParamRequestedInfo */    case MGCPParameter_ParamRequestedInfo:      return EN_ParamRequestedInfo(ctx, &MGCPParameter->u.ParamRequestedInfo);    /* ParamQuarantineHandling */    case MGCPParameter_ParamQuarantineHandling:      return EN_ParamQuarantineHandling(ctx, &MGCPParameter->u.ParamQuarantineHandling);    /* ParamDetectEvents */    case MGCPParameter_ParamDetectEvents:      return EN_ParamDetectEvents(ctx, &MGCPParameter->u.ParamDetectEvents);    /* ParamRestartMethod */    case MGCPParameter_ParamRestartMethod:      return EN_ParamRestartMethod(ctx, &MGCPParameter->u.ParamRestartMethod);    /* ParamRestartDelay */    case MGCPParameter_ParamRestartDelay:      return EN_ParamRestartDelay(ctx, &MGCPParameter->u.ParamRestartDelay);    /* ParamCapabilities */    case MGCPParameter_ParamCapabilities:      return EN_ParamCapabilities(ctx, &MGCPParameter->u.ParamCapabilities);    /* ParamEventStates */    case MGCPParameter_ParamEventStates:      return EN_ParamEventStates(ctx, &MGCPParameter->u.ParamEventStates);    /* ParamPackageList */    case MGCPParameter_ParamPackageList:      return EN_ParamPackageList(ctx, &MGCPParameter->u.ParamPackageList);    /* ParamMaxMGCPDatagram */    case MGCPParameter_ParamMaxMGCPDatagram:      return EN_ParamMaxMGCPDatagram(ctx, &MGCPParameter->u.ParamMaxMGCPDatagram);    /* ExtendedParameter */    case MGCPParameter_ExtendedParameter:      return EN_ExtendedParameter(ctx, &MGCPParameter->u.ExtendedParameter);  }  return FAIL;}void Free_MGCPParameter(TMGCPParameter *MGCPParameter){  switch (MGCPParameter->iType)  {    /* Free ParamResponseAck */    case MGCPParameter_ParamResponseAck:      Free_ParamResponseAck(&MGCPParameter->u.ParamResponseAck);    break;    /* Free ParamBearerInformation */    case MGCPParameter_ParamBearerInformation:      Free_ParamBearerInformation(&MGCPParameter->u.ParamBearerInformation);    break;    /* Free ParamCallId */    case MGCPParameter_ParamCallId:      Free_ParamCallId(&MGCPParameter->u.ParamCallId);    break;    /* Free ParamConnectionId */    case MGCPParameter_ParamConnectionId:      Free_ParamConnectionId(&MGCPParameter->u.ParamConnectionId);    break;    /* Free ParamNotifiedEntity */    case MGCPParameter_ParamNotifiedEntity:      Free_ParamNotifiedEntity(&MGCPParameter->u.ParamNotifiedEntity);    break;    /* Free ParamRequestIdentifier */    case MGCPParameter_ParamRequestIdentifier:      Free_ParamRequestIdentifier(&MGCPParameter->u.ParamRequestIdentifier);    break;    /* Free ParamLocalConnectionOptions */    case MGCPParameter_ParamLocalConnectionOptions:      Free_ParamLocalConnectionOptions(&MGCPParameter->u.ParamLocalConnectionOptions);    break;    /* Free ParamConnectionMode */    case MGCPParameter_ParamConnectionMode:      Free_ParamConnectionMode(&MGCPParameter->u.ParamConnectionMode);    break;    /* Free ParamRequestedEvents */    case MGCPParameter_ParamRequestedEvents:      Free_ParamRequestedEvents(&MGCPParameter->u.ParamRequestedEvents);    break;    /* Free ParamSignalRequests */    case MGCPParameter_ParamSignalRequests:      Free_ParamSignalRequests(&MGCPParameter->u.ParamSignalRequests);    break;    /* Free ParamDigitMap */    case MGCPParameter_ParamDigitMap:      Free_ParamDigitMap(&MGCPParameter->u.ParamDigitMap);    break;    /* Free ParamObservedEvents */    case MGCPParameter_ParamObservedEvents:      Free_ParamObservedEvents(&MGCPParameter->u.ParamObservedEvents);    break;    /* Free ParamConnectionParameters */    case MGCPParameter_ParamConnectionParameters:      Free_ParamConnectionParameters(&MGCPParameter->u.ParamConnectionParameters);    break;    /* Free ParamReasonCode */    case MGCPParameter_ParamReasonCode:      Free_ParamReasonCode(&MGCPParameter->u.ParamReasonCode);    break;    /* Free ParamSpecificEndpointID */    case MGCPParameter_ParamSpecificEndpointID:      Free_ParamSpecificEndpointID(&MGCPParameter->u.ParamSpecificEndpointID);    break;    /* Free ParamSecondEndpointID */    case MGCPParameter_ParamSecondEndpointID:      Free_ParamSecondEndpointID(&MGCPParameter->u.ParamSecondEndpointID);    break;    /* Free ParamSecondConnectionID */    case MGCPParameter_ParamSecondConnectionID:      Free_ParamSecondConnectionID(&MGCPParameter->u.ParamSecondConnectionID);    break;    /* Free ParamRequestedInfo */    case MGCPParameter_ParamRequestedInfo:      Free_ParamRequestedInfo(&MGCPParameter->u.ParamRequestedInfo);    break;    /* Free ParamQuarantineHandling */

⌨️ 快捷键说明

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