Condividi tramite


Set_Error_Direction (CPI-C)

La chiamata Set_Error_Direction ( nome funzione cmsed) specifica se un programma ha rilevato un errore durante la ricezione di dati o durante la preparazione all'invio di dati.

Sintassi

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

Parametri

conversation_ID
Parametro fornito. Specifica l'identificatore per la conversazione. Il valore di questo parametro è stato restituito da Initialize_Conversation o Accept_Conversation.

error_direction
Parametro fornito. Specifica la direzione in cui i dati venivano trasmessi quando il programma ha rilevato un errore. I valori possibili sono:

  • CM_RECEIVE_ERROR

    Si è verificato un errore nei dati ricevuti dal programma partner.

  • CM_SEND_ERROR

    Si è verificato un errore durante la preparazione del programma locale per l'invio di dati al programma partner.

    return_code
    Codice restituito da questa chiamata. I codici restituiti validi sono elencati più avanti in questo argomento.

Codici restituiti

CM_OK
Codice restituito primario; la chiamata eseguita correttamente.

CM_PROGRAM_PARAMETER_CHECK
Codice restituito primario; il valore specificato da conversation_ID o error_direction non è valido.

CM_PRODUCT_SPECIFIC_ERROR
Codice restituito primario; si è verificato un errore specifico del prodotto ed è stato registrato nel log degli errori dei prodotti.

Modifiche di stato

La conversazione può trovarsi in qualsiasi stato, ad eccezione di RESET.

Non esiste alcuna modifica dello stato.

Commenti

Questa chiamata sostituisce la direzione di errore predefinita stabilita da Initialize_Conversation o Accept_Conversation. La direzione di errore predefinita è CM_RECEIVE_ERROR.

La direzione degli errori è rilevante solo quando un programma genera Send_Error nello stato SEND_PENDING, immediatamente dopo l'emissione di dati di ricezionee ricezione (data_received è un valore diverso da CM_NO_DATA_RECEIVED) e un indicatore di invio (status_received è CM_SEND_RECEIVED ).

Quando la conversazione è in SEND_PENDING stato, il programma genera Send_Error se rileva errori nei dati ricevuti o se si è verificato un errore mentre il programma locale è pronto per l'invio dei dati. Il programma deve fornire le informazioni sulla direzione dell'errore utilizzando Set_Error_Direction prima di eseguire Send_Error perché l'unità logica (LU) non può indicare quale tipo di errore si è verificato (ricezione o invio). La nuova direzione di errore rimane attiva fino a quando non viene modificata una Set_Error_Direction successiva.

Quando Send_Error viene emesso, il programma partner riceve uno dei codici restituiti seguenti:

  • CM_PROGRAM_ERROR_PURGING se error_direction è impostato su CM_RECEIVE_ERROR

  • CM_PROGRAM_ERROR_NO_TRUNC se error_direction è impostato su CM_SEND_ERROR