Request_To_Send (CPI-C)
Der Request_To_Send-Aufruf (Funktionsname cmrts) benachrichtigt das Partnerprogramm, dass das lokale Programm Daten senden möchte.
Syntax
CM_ENTRY Request_To_Send(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *return_code
);
Parameter
conversation_ID
Angegebener Parameter. Gibt den Bezeichner für die Unterhaltung an. Der Wert dieses Parameters wurde von Initialize_Conversation oder Accept_Conversation zurückgegeben.
return_code
Der von diesem Aufruf zurückgegebene Code. Die gültigen Rückgabecodes werden weiter unten in diesem Thema aufgeführt.
Rückgabecodes
CM_OK
Primärer Rückgabecode; Der Aufruf wurde erfolgreich ausgeführt.
CM_OPERATION_NOT_ACCEPTED
Primärer Rückgabecode; ein vorheriger Vorgang für diese Unterhaltung ist unvollständig.
CM_OPERATION_INCOMPLETE
Primärer Rückgabecode; Der Vorgang wurde noch nicht abgeschlossen (der Verarbeitungsmodus ist nur nicht blockiert) und wird noch ausgeführt. Das Programm kann Wait_For_Conversation ausgeben, um den Abschluss des Vorgangs abzuwarten, oder Cancel_Conversation , den Vorgang und die Konversation abzubrechen. Wenn Specify_Windows_Handle aufgerufen wurde, sollte die Anwendung auf eine Benachrichtigung durch eine Microsoft® Windows-Nachricht® warten und nicht Wait_For_Conversation aufrufen.
CM_PROGRAM_PARAMETER_CHECK
Primärer Rückgabecode; Der durch conversation_ID angegebene Wert ist ungültig.
CM_PROGRAM_STATE_CHECK
Primärer Rückgabecode; Die Unterhaltung befindet sich nicht im Status RECEIVE, SEND, SEND_PENDING, CONFIRM, CONFIRM_SEND oder CONFIRM_DEALLOCATE.
CM_PRODUCT_SPECIFIC_ERROR
Primärer Rückgabecode; Ein produktspezifischer Fehler ist aufgetreten und wurde im Produktfehlerprotokoll protokolliert.
Zustandsänderungen
Die Unterhaltung kann sich in einem der folgenden Zustände befinden: RECEIVE, SEND, SEND_PENDING, CONFIRM, CONFIRM_SEND oder CONFIRM_DEALLOCATE.
Es gibt keine Zustandsänderung.
Als Reaktion auf diese Anforderung kann das Partnerprogramm die Unterhaltung in den EMPFANGSzustand ändern, indem es einen der folgenden Aufrufe ausgibt:
Empfangen mit auf CM_RECEIVE_AND_WAIT festgelegtem Empfangstyp
Send_Data , wobei der Sendetyp auf CM_SEND_AND_PREP_TO_RECEIVE festgelegt ist
Das Partnerprogramm kann die zu sendende Anforderung auch ignorieren.
Der Unterhaltungszustand ändert sich für das lokale Programm in SEND, wenn das lokale Programm einen der folgenden Werte über den parameter status_received eines nachfolgenden Empfangsaufrufs empfängt:
CM_SEND_RECEIVED
CM_CONFIRM_SEND_RECEIVED und das lokale Programm antwortet mit einem bestätigten Anruf
Hinweise
Die Request-to-Send-Benachrichtigung wird vom Partnerprogramm über den parameter request_to_send_received der folgenden Aufrufe empfangen:
-
Die Anforderungs-zu-Senden-Benachrichtigung wird sofort an das Partnerprogramm gesendet. CPI-C wartet nicht, bis der Sendepuffer aufgefüllt oder geleert wird. Folglich kann die Anforderungs-zu-Senden-Benachrichtigung außerhalb der Reihenfolge eingehen. Wenn sich das lokale Programm beispielsweise im SEND-Zustand befindet und den Prepare_To_Receive Aufruf gefolgt vom Request_To_Send Anruf ausgibt, kann das Partnerprogramm im EMPFANGSzustand die Anforderungs-zu-Senden-Benachrichtigung empfangen, bevor es die Sendebenachrichtigung empfängt. Aus diesem Grund können request_to_send über den Empfangsanruf an ein Programm gemeldet werden.
Beim Empfang einer Anforderungs-zu-Sende-Benachrichtigung behält die Partner-Logische Einheit (Lu) die Benachrichtigung bei, bis der Partner einen Anruf ausgibt, der request_to_send_received zurückgibt. Die LU behält nur eine Anforderungs-zu-Sende-Benachrichtigung pro Unterhaltung bei. Daher kann das lokale Programm mehr Request_To_Send Aufrufe ausgeben, als explizit vom Partnertransaktionsprogramm (Partner Transaction Program, TP) verarbeitet werden.