Set_Error_Direction (CPI-C)

La llamada Set_Error_Direction (nombre de función cmsed) especifica si un programa detectó un error al recibir datos o al prepararse 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 fluyen los datos cuando el programa encontró un error. Los valores posibles son:

  • CM_RECEIVE_ERROR

    Error en los datos recibidos del programa asociado.

  • CM_SEND_ERROR

    Error al preparar el programa local para enviar datos al programa asociado.

    return_code
    Código devuelto de 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 ha registrado 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.

Comentarios

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 SEND_PENDING estado, inmediatamente después de emitir datos de recepcióny recepción (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á en 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 está preparado 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 indicar 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 posterior lo cambia.

Cuando se emite 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