Set_Error_Direction (CPI-C)

Set_Error_Directionの呼び出し (関数名cmsed) は、プログラムがデータの受信中、またはデータの送信準備中にエラーを検出したかどうかを指定します。

構文

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

パラメーター

conversation_ID
指定されたパラメーター。 メッセージ交換の識別子を指定します。 このパラメーターの値は Initialize_Conversation または Accept_Conversationによって返されました。

error_direction
指定されたパラメーター。 プログラムでエラーが発生したときにデータが流れる方向を指定します。 次のいずれかの値になります。

  • CM_RECEIVE_ERROR

    パートナープログラムから受信したデータでエラーが発生しました。

  • CM_SEND_ERROR

    ローカルプログラムがパートナープログラムにデータを送信する準備をしているときに、エラーが発生しました。

    return_code
    この呼び出しから返されたコード。 有効なリターンコードについては、このトピックの後半で説明します。

リターン コード

CM_OK
プライマリリターンコード。呼び出しが正常に実行されました。

CM_PROGRAM_PARAMETER_CHECK
プライマリリターンコード。 conversation_ID または error_direction によって指定された値が無効です。

CM_PRODUCT_SPECIFIC_ERROR
プライマリリターンコード。製品固有のエラーが発生し、製品のエラーログに記録されました。

State Changes (状態の変化)

メッセージ交換は、RESET 以外の任意の状態にすることができます。

状態の変更はありません。

注釈

この呼び出しは、 Initialize_Conversation または Accept_Conversationによって確立された既定のエラーの方向よりも優先されます。 既定のエラーの方向は CM_RECEIVE_ERROR です。

エラーの方向が関連するのは、SEND_PENDING Send_Error プログラムが 受信および受信データを発行した直後 (data_received が CM_NO_DATA_RECEIVED 以外の値)、および送信インジケーター (status_received が CM_SEND_RECEIVED) の場合だけです。

メッセージ交換が SEND_PENDING 状態になると、プログラムは、受信したデータのエラーを検出した場合、またはローカルプログラムがデータの送信を準備している間にエラーが発生した場合に Send_Error を発行します。 プログラムはSend_Errorを発行する前にSet_Error_Directionを使用してエラーの方向情報を指定する必要があります。これは、論理ユニット (LU) が発生したエラーの種類 (受信または送信) を判断できないためです。 新しいエラーの方向は、後続の Set_Error_Direction によって変更されるまで有効です。

Send_Errorが発行されると、パートナープログラムは次のいずれかのリターンコードを受け取ります。

  • Error_directionが CM_RECEIVE_ERROR に設定されている場合は CM_PROGRAM_ERROR_PURGING

  • Error_directionが CM_SEND_ERROR に設定されている場合は CM_PROGRAM_ERROR_NO_TRUNC