Modifica degli stati di conversazione (CPI-C)

Una modifica nello stato della conversazione può risultare da:

  • Chiamata effettuata dal programma di transazione locale (TP).

  • Una chiamata effettuata dal partner TP.

  • Condizione di errore.

    Nell'esempio seguente viene illustrato come le chiamate CPI-C (Common Programming Interface for Communications) possono modificare lo stato della conversazione da SEND a RECEIVE e da RECEIVE a SEND.

Nota

Qualsiasi TP può inviare o ricevere dati, indipendentemente dal fatto che sia il TP (tp che ha avviato la conversazione) o il TP richiamabile (il TP che ha risposto a una richiesta per avviare una conversazione).

In questo esempio viene illustrato il modo in cui le chiamate CPI-C possono modificare lo stato della conversazione. In questa tabella ogni stato della conversazione viene visualizzato in grassetto e precede le chiamate CPI-C usate durante tale stato.

Rilasciato dal TP richiamato Rilasciato dal TP richiamabile
Stato della conversazione: RESET
Initialize_Conversation
Stato della conversazione: INITIALIZE
Set_Sync_Level
(sync_level=CM_CONFIRM)
Allocare
Stato della conversazione: SEND
Send_Data
Prepare_to_Receive Stato della conversazione: RESET
Accept_Conversation
Stato della conversazione: RICEZIONE
(status_received= CM_CONFIRM_SEND_RECEIVED)
Stato della conversazione: CONFIRM_SEND
Confirm
Stato della conversazione: SEND
(return_code=CM_OK) Send_Data
Stato della conversazione: RICEZIONE Confirm
(status_received= CM_CONFIRM_RECEIVED)
Stato della conversazione: CONFERMARE
Request_To_Send
Confermato
Stato della conversazione: RICEZIONE (return_code=CM_OK)
(request_to_send_received= CM_REQ_TO_SEND_RECEIVED)
Prepare_To_Receive
Ricevere
(status_received= CM_CONFIRM_SEND_RECEIVED)
Stato della conversazione: CONFIRM_SEND
Confermato
Stato della conversazione: SEND (return_code=CM_OK)
Stato della conversazione: RICEZIONE
Send_Data
Deallocare
Ricevere
(status_received= CM_CONFIRM_DEALLOC_RECEIVED)
Stato della conversazione:
CONFIRM_DEALLOCATE
Confermato
(return_code=CM_OK) Stato della conversazione: RESET
Stato della conversazione: RESET

Stati iniziali

Prima di allocare la conversazione, lo stato è RESET per entrambi i provider di servizi.

Nell'esempio, dopo l'allocazione della conversazione, lo stato iniziale è SEND per il nome TP e RECEIVE per il TP richiamabile.

Modifica dello stato DI RICEZIONE

La chiamata Prepare_To_Receive consente a un TP di modificare la conversazione dallo stato SEND a RECEIVE. Questa chiamata:

  • Scarica il buffer di invio dell'lu locale.

  • Invia un indicatore CM_CONFIRM_SEND al partner TP tramite il parametro status_received di una chiamata di ricezione, perché il livello di sincronizzazione è impostato su CM_CONFIRM. Questo indicatore indica al partner TP che è prevista una risposta confermata prima che il TP partner possa iniziare a inviare dati.

Modifica dello stato SEND

La chiamata Request_To_Send informa il tp del partner (per il quale la conversazione è in stato SEND) che il TP locale (per il quale la conversazione è in stato RECEIVE) vuole inviare dati. Questa richiesta viene comunicata al partner TP tramite il parametro request_to_send_received della chiamata Conferma . Il parametro request_to_send_received viene restituito anche a Send_Data e altre chiamate.

Quando il partner TP rilascia la chiamata Prepare_To_Receive , lo stato della conversazione viene modificato in RECEIVE per il partner TP, rendendo possibile che il TP locale invii dati.

Importante

L'emissione di Request_To_Send non modifica lo stato della conversazione. Al momento della ricezione di una richiesta di invio, il tp partner non è necessario per modificare lo stato della conversazione. Può ignorare la richiesta.