Condividi tramite


Confirmed (CPI-C)

La chiamata confermata (nome funzione cmcfmd) risponde a una richiesta di conferma dal programma partner. Informa il programma partner che il programma locale non ha rilevato un errore nei dati ricevuti. Poiché il programma che emette la richiesta di conferma attende una conferma, conferma la sincronizzazione dell'elaborazione dei due programmi.

Sintassi


CM_ENTRY Confirmed(   
  unsigned char FAR *conversation_ID,    
    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.

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_OPERATION_NOT_ACCEPTED
Codice restituito primario; un'operazione precedente in questa conversazione è incompleta.

CM_OPERATION_INCOMPLETE
Codice restituito primario; l'operazione non è stata completata (la modalità di elaborazione non è bloccata solo) ed è ancora in corso. Il programma può eseguire Wait_For_Conversation per attendere il completamento dell'operazione o Cancel_Conversation per annullare l'operazione e la conversazione. Se Specify_Windows_Handle è stato chiamato, l'applicazione deve attendere la notifica da un messaggio di Microsoft® Windows® e non chiamare Wait_For_Conversation.

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

CM_PROGRAM_STATE_CHECK
Codice restituito primario; la conversazione non era in CONFIRM, CONFIRM_SEND o CONFIRM_DEALLOCATE stato quando il programma ha rilasciato questa chiamata.

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

Modifiche dello stato

La conversazione deve trovarsi in uno degli stati seguenti quando i problemi del programma sono confermati:

  • CONFERMA

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    Il nuovo stato è determinato dallo stato precedente, lo stato della conversazione quando il programma locale ha rilasciato Conferma. Lo stato precedente è indicato dal valore status_received della chiamata di ricezione precedente. La tabella seguente riepiloga le possibili modifiche dello stato quando return_code è impostata su CM_OK .

Stato precedente Nuovo stato
CONFERMA RECEIVE
CONFIRM_SEND SEND
CONFIRM_DEALLOCATE RESET

Altri codici restituiti non comportano alcuna modifica dello stato.

Commenti

Una richiesta di conferma viene emessa da una delle chiamate seguenti nel programma partner:

  • Conferma.

  • Prepare_To_Receive se il tipo di ricezione da preparare è impostato su CM_PREP_TO_RECEIVE_CONFIRM o su CM_PREP_TO_RECEIVE_SYNC_LEVEL e il livello di sincronizzazione delle conversazioni è impostato su CM_CONFIRM.

  • Deallocare se il tipo deallocate è impostato su CM_DEALLOCATE_CONFIRM o su CM_DEALLOCATE_SYNC_LEVEL e il livello di sincronizzazione delle conversazioni è impostato su CM_CONFIRM.

  • Send_Data nelle circostanze seguenti:

    • Il tipo di invio è impostato su CM_SEND_AND_CONFIRM.

    • Il tipo di invio è impostato su CM_SEND_AND_PREPARE_TO_RECEIVE e il tipo di ricezione da preparare è impostato su CM_PREPARE_TO_RECEIVE_CONFIRM.

    • Il tipo di invio è impostato su CM_SEND_AND_PREPARE_TO_RECEIVE, il tipo di preparazione a ricezione è impostato su CM_PREPARE_TO_RECEIVE_SYNC_LEVEL e il livello di sincronizzazione è impostato su CM_CONFIRM.

    • Il tipo di invio è impostato su CM_SEND_AND_DEALLOCATE e il tipo deallocate è impostato su CM_DEALLOCATE_CONFIRM.

    • Il tipo di invio è impostato su CM_SEND_AND_DEALLOCATE, il tipo deallocate è impostato su CM_DEALLOCATE_SYNC_LEVEL e il livello di sincronizzazione è impostato su CM_CONFIRM.

    Una richiesta di conferma viene ricevuta dal programma locale tramite il parametro status_received di Ricezione. Il programma locale può generare conferma solo se il parametro status_received è impostato su uno dei valori seguenti:

  • CM_CONFIRM_RECEIVED

  • CM_CONFIRM_SEND_RECEIVED

  • CM_CONFIRM_DEALLOC_RECEIVED