Set_Error_Direction (CPI-C)

L’appel Set_Error_Direction (nom de la fonction cmsed) spécifie si un programme a détecté une erreur lors de la réception des données ou de la préparation de l’envoi de données.

Syntaxe

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

Paramètres

conversation_ID
Paramètre fourni. Spécifie l’identificateur de la conversation. La valeur de ce paramètre a été retournée par Initialize_Conversation ou Accept_Conversation.

error_direction
Paramètre fourni. Spécifie la direction dans laquelle les données circulent lorsque le programme a rencontré une erreur. Les valeurs possibles sont les suivantes :

  • CM_RECEIVE_ERROR

    Une erreur s’est produite dans les données reçues du programme partenaire.

  • CM_SEND_ERROR

    Une erreur s’est produite pendant que le programme local se préparait à envoyer des données au programme partenaire.

    return_code
    Code retourné par cet appel. Les codes de retour valides sont répertoriés plus loin dans cette rubrique.

Codes de retour

CM_OK
Code de retour principal ; l’appel a été exécuté avec succès.

CM_PROGRAM_PARAMETER_CHECK
Code de retour principal ; la valeur spécifiée par conversation_ID ou error_direction n’est pas valide.

CM_PRODUCT_SPECIFIC_ERROR
Code de retour principal ; une erreur spécifique au produit s’est produite et a été enregistrée dans le journal des erreurs des produits.

Changements d'état

La conversation peut être dans n’importe quel état, à l’exception de RESET.

Il n’y a aucun changement d’état.

Remarques

Cet appel remplace le sens d’erreur par défaut établi par Initialize_Conversation ou Accept_Conversation. Le sens d’erreur par défaut est CM_RECEIVE_ERROR.

Le sens de l’erreur n’est pertinent que lorsqu’un programme émet des Send_Error dans SEND_PENDING état, immédiatement après l’émission des données Réceptionet réception des données (data_received est une valeur autre que CM_NO_DATA_RECEIVED) et un indicateur d’envoi (status_received est CM_SEND_RECEIVED).

Lorsque la conversation est dans SEND_PENDING état, le programme rencontre des problèmes Send_Error s’il détecte des erreurs dans les données reçues ou si une erreur s’est produite pendant que le programme local s’est préparé à envoyer des données. Le programme doit fournir les informations relatives au sens de l’erreur à l’aide de Set_Error_Direction avant d’émettre Send_Error , car l’unité logique (LU) ne peut pas déterminer le type d’erreur qui s’est produit (réception ou envoi). La nouvelle direction d’erreur reste en vigueur jusqu’à ce qu’une Set_Error_Direction ultérieure la modifie.

Lorsque Send_Error est émis, le programme partenaire reçoit l’un des codes de retour suivants :

  • CM_PROGRAM_ERROR_PURGING si error_direction est défini sur CM_RECEIVE_ERROR

  • CM_PROGRAM_ERROR_NO_TRUNC si error_direction est défini sur CM_SEND_ERROR