Set_Error_Direction (CPI-C)

La Set_Error_Direction llamada (nombre de función cmsed) especifica si un programa detectó un error al recibir datos o mientras se preparaba para enviar datos.

Sintaxis

  
CM_ENTRY Set_Error_Direction(   
  unsigned char FAR *conversation_ID,    
  CM_INT32 FAR *error_direction,         
  CM_INT32 FAR *return_code              
);  

Parámetros

conversation_ID
Parámetro proporcionado. Especifica el identificador de la conversación. El valor de este parámetro lo devolvió Initialize_Conversation o Accept_Conversation.

error_direction
Parámetro proporcionado. Especifica la dirección en la que fluyeban los datos cuando el programa encontró un error. Los valores posibles son:

  • CM_RECEIVE_ERROR

    Se produjo un error en los datos recibidos del programa asociado.

  • CM_SEND_ERROR

    Se produjo un error mientras el programa local se preparaba para enviar datos al programa asociado.

    return_code
    Código devuelto por esta llamada. Los códigos de retorno válidos se enumeran más adelante en este tema.

Códigos de retorno

CM_OK
Código de retorno principal; la llamada se ejecutó correctamente.

CM_PROGRAM_PARAMETER_CHECK
Código de retorno principal; El valor especificado por conversation_ID o error_direction no es válido.

CM_PRODUCT_SPECIFIC_ERROR
Código de retorno principal; se produjo un error específico del producto y se registró en el registro de errores de productos.

Cambios de estado

La conversación puede estar en cualquier estado excepto RESET.

No hay ningún cambio de estado.

Observaciones

Esta llamada invalida la dirección de error predeterminada establecida por Initialize_Conversation o Accept_Conversation. La dirección de error predeterminada es CM_RECEIVE_ERROR.

La dirección del error solo es relevante cuando un programa emite Send_Error en estado SEND_PENDING, inmediatamente después de emitir Receiveand receiving data (data_received es un valor distinto de CM_NO_DATA_RECEIVED) y un indicador de envío (status_received es CM_SEND_RECEIVED).

Cuando la conversación está SEND_PENDING estado, el programa emite Send_Error si detecta errores en los datos recibidos o si se produjo un error mientras el programa local se preparaba para enviar datos. El programa debe proporcionar la información de dirección de error mediante Set_Error_Direction antes de emitir Send_Error porque la unidad lógica (LU) no puede saber qué tipo de error se produjo (recepción o envío). La nueva dirección de error permanece en vigor hasta que un Set_Error_Direction lo cambia.

Cuando Send_Error , el programa asociado recibe uno de los siguientes códigos de retorno:

  • CM_PROGRAM_ERROR_PURGING si error_direction está establecido en CM_RECEIVE_ERROR

  • CM_PROGRAM_ERROR_NO_TRUNC si error_direction está establecido en CM_SEND_ERROR