Partager via


Exemple de conversation mappée (CPI-C)

L’exemple suivant d’une conversation mappée montre les appels CPI-C (Common Programming Interface for Communications) utilisés pour démarrer une conversation, échanger des données et mettre fin à la conversation. Les paramètres d’appel sont entre parenthèses.

Émis par le TP appelant Émis par le tp invokable
Initialize_Conversation
Allouer
Send_Data
Libérer Accept_Conversation
Recevoir
(data_received=
CM_COMPLETE_DATA_RECEIVED)
(return_code=
CM_DEALLOCATED_NORMAL)

Les paragraphes suivants décrivent les appels utilisés dans une conversation mappée.

Appels pour démarrer une conversation mappée

Pour démarrer une conversation, le programme de transaction d’appel émet les appels suivants :

  • Initialize_Conversation, qui demande à CPI-C de définir les valeurs définissant les caractéristiques de la conversation. L’appel Initialize_Conversation spécifie un nom de destination symbolique associé à une entrée dans une table d’informations latérales en mémoire. Les informations latérales spécifient le TP partenaire, l’unité logique du partenaire, le mode, la sécurité, etc.

  • Allocate, qui demande à CPI-C d’établir une conversation entre le TP appelant et le TP appelant.

    Le TP invocable émet l’appel Accept_Conversation , ce qui informe CPI-C qu’il est prêt à commencer une conversation avec le TP appelant.

Appels pour l’envoi de données dans une conversation mappée

L’appel Send_Data place un enregistrement de données (un enregistrement contenant des données d’application à transmettre) dans la mémoire tampon d’envoi de l’unité logique locale (LU). La transmission de données au tp partenaire n’a pas lieu tant que l’un des événements suivants ne se produit pas :

  • La mémoire tampon d’envoi se remplit.

  • Le TP d’envoi effectue un appel qui force CPI-C à vider la mémoire tampon et à envoyer des données au tp partenaire.

    En plus de l’enregistrement de données, la mémoire tampon d’envoi contient également la demande d’allocation (qui précède l’enregistrement de données).

    Dans l’exemple précédent, Désallouer vide la mémoire tampon d’envoi, en envoyant la demande d’allocation et les données au tp partenaire. Les autres appels qui vident la mémoire tampon sont Confirm et Flush.

Appels pour la réception de données dans une conversation mappée

L’appel de réception reçoit l’enregistrement de données et les informations status du tp partenaire. Si aucune donnée ou information status n’est actuellement disponible, le TP local, par défaut, attend que les données arrivent.

Le paramètre data_received de Receive indique au programme s’il a reçu des données et, le cas échéant, si les données sont complètes ou non.

Appels pour mettre fin à une conversation mappée

Pour mettre fin à une conversation, l’un des programmes de transaction émet la désallocation, ce qui amène CPI-C à libérer la conversation entre les deux TPs.