Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
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 :
-
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).