Request_To_Send (CPI-C)
Request_To_Send呼び出し (関数名 cmrts) は、ローカル プログラムがデータを送信することをパートナー プログラムに通知します。
構文
CM_ENTRY Request_To_Send(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *return_code
);
パラメーター
conversation_ID
指定されたパラメーター。 会話の識別子を指定します。 このパラメーターの値は 、Initialize_Conversation または Accept_Conversationによって返されました。
return_code
この呼び出しから返されたコード。 有効なリターン コードについては、このトピックの後半で説明します。
リターン コード
CM_OK
主なリターン コード。呼び出しが正常に実行されました。
CM_OPERATION_NOT_ACCEPTED
主なリターン コード。この会話に対する前の操作が不完全です。
CM_OPERATION_INCOMPLETE
主なリターン コード。操作が完了せず (処理モードは非ブロッキングのみ)、まだ進行中です。 プログラムは 、Wait_For_Conversation を発行して操作の完了を 待機したり、 操作と会話を取り消Cancel_Conversationしたりできます。 Specify_Windows_Handleが呼び出された場合、アプリケーションは Microsoft® Windows® メッセージによる通知を待機し、Wait_For_Conversationを呼び出す必要はありません。
CM_PROGRAM_PARAMETER_CHECK
主なリターン コード。 conversation_ID で指定された値が無効です。
CM_PROGRAM_STATE_CHECK
主なリターン コード。会話が RECEIVE、SEND、SEND_PENDING、CONFIRM、CONFIRM_SEND、またはCONFIRM_DEALLOCATE状態ではありません。
CM_PRODUCT_SPECIFIC_ERROR
主なリターン コード。製品固有のエラーが発生し、製品エラー ログに記録されています。
State Changes (状態の変化)
会話は、RECEIVE、SEND、SEND_PENDING、CONFIRM、CONFIRM_SEND、CONFIRM_DEALLOCATEのいずれかの状態にすることができます。
状態の変更はありません。
この要求に応じて、パートナー プログラムは、次のいずれかの呼び出しを発行することで、会話を RECEIVE 状態に変更できます。
受信 の種類が CM_RECEIVE_AND_WAIT に設定された受信
送信の種類が CM_SEND_AND_PREP_TO_RECEIVE に設定されているSend_Data
パートナー プログラムは、送信要求を無視することもできます。
ローカル プログラムが後続の Receive 呼び出しの status_received パラメーターを使用して次のいずれかの値を受け取ると、ローカル プログラムのメッセージ交換状態が SEND に変わります。
CM_SEND_RECEIVED
CM_CONFIRM_SEND_RECEIVEDとローカル プログラムが 確認済 みの呼び出しで応答する
注釈
送信要求通知は、次の呼び出しの request_to_send_received パラメーターを使用してパートナー プログラムによって受信されます。
-
送信要求通知は、パートナー プログラムに直ちに送信されます。 CPI-C は、送信バッファーがいっぱいになるまで、またはフラッシュされるまで待機しません。 その結果、送信要求通知が順番に到着する可能性があります。 たとえば、ローカル プログラムが SEND 状態で、 Prepare_To_Receive 呼び出しの後に Request_To_Send 呼び出しを発行した場合、パートナー プログラムは RECEIVE 状態で、送信通知を受信する前に要求から送信への通知を受信できます。 このため、 request_to_send は Receive 呼び 出 しを介してプログラムに報告できます。
送信要求通知を受信すると、パートナー論理ユニット (LU) は、パートナーが request_to_send_receivedを返す呼び出しを発行するまで通知を保持します。 LU は、会話ごとに 1 つの要求から送信への通知のみを保持します。 したがって、ローカル プログラムは、パートナー トランザクション プログラム (TP) によって明示的に処理されるよりも多くの Request_To_Send 呼び出しを発行できます。