Modifica degli stati di conversazione
Una modifica nello stato della conversazione può risultare da:
Verbo rilasciato dal TP locale.
Verbo rilasciato dal partner TP.
Condizione di errore.
Nell'esempio seguente viene illustrato come i verbi APPC 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 come i verbi APPC possono modificare lo stato della conversazione. In questa tabella ogni stato della conversazione viene visualizzato in grassetto e precede i verbi APPC usati durante tale stato.
Rilasciato dal TP richiamato | Rilasciato dal TP richiamabile |
---|---|
TP_STARTED | |
Stato della conversazione: RESET | |
MC_ALLOCATE | |
(synclevel=AP_CONFIRM_SYNC_LEVL) | |
Stato della conversazione: SEND | |
MC_SEND_DATA | |
MC_PREPARE_TO_RECEIVE | |
(ptr_type=AP_SYNC_LEVEL) | |
Stato della conversazione: RESET | |
RECEIVE_ALLOCATE | |
Stato della conversazione: RICEZIONE | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_DATA_COMPLETE) | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_CONFIRM_SEND) | |
Stato della conversazione: CONFIRM_SEND | |
MC_CONFIRMED | |
Stato della conversazione: SEND | |
MC_SEND_DATA | |
MC_CONFIRM | |
Stato della conversazione: RICEZIONE | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_DATA_COMPLETE) | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_CONFIRM_WHAT_RECEIVED) | |
Stato della conversazione: CONFERMARE | |
MC_REQUEST_TO_SEND | |
MC_CONFIRMED | |
(rts_rcvd=AP_YES) | |
MC_PREPARE_TO_RECEIVE | |
(ptr_type=AP_SYNC_LEVEL) | |
Stato della conversazione: RICEZIONE | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_CONFIRM_SEND) | |
Stato della conversazione: CONFIRM_SEND | |
MC_CONFIRMED | |
Stato della conversazione: SEND | |
MC_SEND_DATA | |
MC_DEALLOCATE | |
(dealloc_type=AP_SYNC_LEVEL) | |
Stato della conversazione: RICEZIONE | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_DATA_COMPLETE) | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_CONFIRM_DEALLOCATE) | |
Stato della conversazione: CONFIRM_DEALLOCATE | |
MC_CONFIRMED | |
Stato della conversazione: RESET | Stato della conversazione: RESET |
TP_ENDED | TP_ENDED |
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
MC_PREPARE_TO_RECEIVE consente a un TP di modificare la conversazione dallo stato SEND a RECEIVE. Questo verbo:
Scarica il buffer di invio dell'lu locale.
Invia l'indicatore AP_CONFIRM_SEND al partner TP tramite il parametro what_rcvd di un verbo di ricezione. Questo indicatore indica al partner TP che è prevista una risposta MC_CONFIRMED prima che il TP partner possa iniziare a inviare dati.
L'elaborazione di conferma viene eseguita quando le condizioni seguenti sono vere:
Il parametro ptr_type è impostato su AP_SYNC_LEVEL.
Il livello di sincronizzazione della conversazione è impostato su AP_CONFIRM_SYNC_LEVEL.
Per altre informazioni sull'elaborazione della conferma, vedere Elaborazione di conferma.
Nota
L'emissione di MC_RECEIVE_AND_WAIT mentre la conversazione si trova nello stato SEND scarica il buffer di invio dell'LU e modifica lo stato della conversazione in RECEIVE. La modifica dello stato della conversazione in questo modo non supporta l'elaborazione di conferma.
Modifica dello stato SEND
MC_REQUEST_TO_SEND informa il partner TP (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 rts_rcvd di MC_CONFIRM. Il parametro rts_rcvd viene restituito anche a MC_SEND_DATA e ad altri verbi.
Quando il partner TP rilascia MC_PREPARE_TO_RECEIVE, lo stato della conversazione viene modificato in RECEIVE per il partner TP, rendendo possibile che il TP locale invii dati.
Nota
L'emissione di MC_REQUEST_TO_SEND non modifica lo stato della conversazione. Al momento della ricezione di una richiesta di invio, il partner TP non è necessario modificare lo stato della conversazione; può ignorare la richiesta.