Flush (CPI-C)

Flush 调用 (函数名称 cmflus) 将本地逻辑单元 (LU) 的发送缓冲区的内容发送到伙伴 LU (和程序) 。 如果发送缓冲区为空,则不执行任何操作。

语法

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

参数

conversation_ID
提供的参数。 指定会话的标识符。 此参数的值由 Initialize_ConversationAccept_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
主返回代码;当程序发出此调用时,会话未处于 SEND 或 SEND_PENDING 状态。

CM_PRODUCT_SPECIFIC_ERROR
主返回代码;发生特定于产品的错误,并且已记录在产品错误日志中。

状态更改

会话必须处于 SEND 或 SEND_PENDING 状态。

如果调用成功完成, (return_code CM_OK) ,则会话处于 SEND 状态。

其他返回代码不会导致状态更改。

注解

Send_Data处理的数据会累积在本地 LU 发送缓冲区中,直到发生以下情况之一:

  • 本地程序发出 Flush 调用或其他刷新 LU 发送缓冲区的调用。 (某些由 Set_Send_Type 设置的发送类型包括刷新功能。)

  • 缓冲区已满。

    分配生成的分配请求以及Send_Error生成的错误信息也会被缓冲。