Set_Error_Direction (CPI-C)

La Set_Error_Direction chiamata (nome funzione cmsed) specifica se un programma ha rilevato un errore durante la ricezione dei dati o durante la preparazione per l'invio dei 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 di flusso dei dati 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 l'invio dei dati al programma partner da parte del programma locale.

    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 è stata 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ò essere in qualsiasi stato, ad eccezione di RESET.

Non è presente alcuna modifica dello stato.

Commenti

Questa chiamata esegue l'override della direzione di errore predefinita stabilita Initialize_Conversation o Accept_Conversation. La direzione di errore predefinita è CM_RECEIVE_ERROR.

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

Quando la conversazione è nello stato SEND_PENDING, il programma invia Send_Error se rileva errori nei dati ricevuti o se si è verificato un errore durante l'invio dei dati da parte del programma locale. Il programma deve fornire le informazioni sulla direzione dell'errore usando Set_Error_Direction prima di rilasciare Send_Error perché l'unità logica (LU) non è in grado di indicare il tipo di errore (ricezione o invio). La nuova direzione dell'errore rimane effettiva fino a quando non viene modificata Set_Error_Direction successiva.

Quando Send_Error 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