Partager via


Request_To_Send (CPI-C)

L’appel Request_To_Send (nom de fonction cmrts) informe le programme partenaire que le programme local souhaite envoyer des données.

Syntaxe

  
CM_ENTRY Request_To_Send(   
  unsigned char FAR *conversation_ID,    
  CM_INT32 FAR *return_code              
);  

Paramètres

conversation_ID
Paramètre fourni. Spécifie l’identificateur de la conversation. La valeur de ce paramètre a été retournée par Initialize_Conversation ou Accept_Conversation.

return_code
Code retourné à partir de cet appel. Les codes de retour valides sont répertoriés plus loin dans cette rubrique.

Codes de retour

CM_OK
Code de retour principal ; l’appel a été exécuté avec succès.

CM_OPERATION_NOT_ACCEPTED
Code de retour principal ; une opération précédente sur cette conversation est incomplète.

CM_OPERATION_INCOMPLETE
Code de retour principal ; l’opération n’est pas terminée (le mode de traitement n’est pas bloquant uniquement) et est toujours en cours. Le programme peut émettre des Wait_For_Conversation pour attendre l’achèvement de l’opération, ou Cancel_Conversation pour annuler l’opération et la conversation. Si Specify_Windows_Handle a été appelée, l’application doit attendre la notification par un message Microsoft® Windows® et ne pas appeler Wait_For_Conversation.

CM_PROGRAM_PARAMETER_CHECK
Code de retour principal ; la valeur spécifiée par conversation_ID n’est pas valide.

CM_PROGRAM_STATE_CHECK
Code de retour principal ; la conversation n’est pas dans l’état RECEIVE, SEND, SEND_PENDING, CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE.

CM_PRODUCT_SPECIFIC_ERROR
Code de retour principal ; une erreur spécifique au produit s’est produite et a été enregistrée dans le journal des erreurs des produits.

Modifications d’état

La conversation peut se trouver dans l’un des états suivants : RECEIVE, SEND, SEND_PENDING, CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE.

Il n’y a aucune modification d’état.

En réponse à cette demande, le programme partenaire peut modifier la conversation en l’état RECEIVE en émettant l’un des appels suivants :

  • Recevoir avec le type de réception défini sur CM_RECEIVE_AND_WAIT

  • Prepare_To_Receive

  • Send_Data avec le type d’envoi défini sur CM_SEND_AND_PREP_TO_RECEIVE

    Le programme partenaire peut également ignorer la demande d’envoi.

    L’état de conversation passe à SEND pour le programme local lorsque le programme local reçoit l’une des valeurs suivantes via le paramètre status_received d’un appel de réception suivant :

  • CM_SEND_RECEIVED

  • CM_CONFIRM_SEND_RECEIVED et le programme local répond avec un appel confirmé

Remarques

La notification de demande à envoyer est reçue par le programme partenaire via le paramètre request_to_send_received des appels suivants :

  • Confirmé

  • Recevoir

  • Send_Data

  • Send_Error

  • Test_Request_To_Send_Received

    La notification de demande à envoyer est envoyée immédiatement au programme partenaire. CPI-C n’attend pas que la mémoire tampon d’envoi remplisse ou soit vidée. Par conséquent, la notification de demande à envoyer peut arriver hors de séquence. Par exemple, si le programme local est en état SEND et émet l’appel Prepare_To_Receive suivi de l’appel Request_To_Send , le programme partenaire, dans l’état RECEIVE, peut recevoir la notification d’envoi avant de recevoir la notification d’envoi. Pour cette raison, request_to_send pouvez être signalés à un programme par le biais de l’appel de réception .

    Lors de la réception d’une notification de demande à envoyer, l’unité logique partenaire conserve la notification jusqu’à ce que le partenaire émet un appel qui retourne request_to_send_received. L’unité logique conserve une seule notification de demande à envoyer par conversation. Ainsi, le programme local peut émettre plus d’appels Request_To_Send que sont gérés explicitement par le programme de transaction partenaire (TP).