Compartir a través de


Confirmed (CPI-C)

La llamada confirmada (nombre de función cmcfmd) responde a una solicitud de confirmación del programa asociado. Informa al programa asociado de que el programa local no ha detectado un error en los datos recibidos. Dado que el programa que emite la solicitud de confirmación espera una confirmación, Confirmado sincroniza el procesamiento de los dos programas.

Sintaxis


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

Parámetros

conversation_ID
Parámetro proporcionado. Especifica el identificador de la conversación. El valor de este parámetro lo devolvió Initialize_Conversation o Accept_Conversation.

return_code
Código devuelto de esta llamada. Los códigos de retorno válidos se enumeran más adelante en este tema.

Códigos de retorno

CM_OK
Código de retorno principal; la llamada se ejecutó correctamente.

CM_OPERATION_NOT_ACCEPTED
Código de retorno principal; Una operación anterior en esta conversación está incompleta.

CM_OPERATION_INCOMPLETE
Código de retorno principal; la operación no se ha completado (el modo de procesamiento es solo de bloqueo) y todavía está en curso. El programa puede emitir Wait_For_Conversation para esperar la finalización de la operación o Cancel_Conversation cancelar la operación y la conversación. Si se ha llamado a Specify_Windows_Handle , la aplicación debe esperar la notificación por un mensaje de Microsoft® Windows® y no llamar a Wait_For_Conversation.

CM_PROGRAM_PARAMETER_CHECK
Código de retorno principal; el valor especificado por conversation_ID no es válido.

CM_PROGRAM_STATE_CHECK
Código de retorno principal; la conversación no estaba en CONFIRM, CONFIRM_SEND o CONFIRM_DEALLOCATE estado cuando el programa emitió esta llamada.

CM_PRODUCT_SPECIFIC_ERROR
Código de retorno principal; se produjo un error específico del producto y se ha registrado en el registro de errores de productos.

Cambios de estado

La conversación debe estar en uno de los siguientes estados cuando el programa emite Confirmado:

  • CONFIRMAR

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    El nuevo estado viene determinado por el estado anterior: el estado de la conversación cuando el programa local emitido Confirmado. El estado anterior se indica mediante el valor status_received de la llamada receive anterior. En la tabla siguiente se resumen los posibles cambios de estado cuando return_code se establece en CM_OK.

Estado antiguo Nuevo estado
CONFIRMAR RECEIVE
CONFIRM_SEND ENVIAR
CONFIRM_DEALLOCATE RESET

Otros códigos de retorno no producen ningún cambio de estado.

Comentarios

Una de las siguientes llamadas en el programa asociado emite una solicitud de confirmación:

  • Confirmar.

  • Prepare_To_Receive si el tipo de preparación para recibir está establecido en CM_PREP_TO_RECEIVE_CONFIRM o en CM_PREP_TO_RECEIVE_SYNC_LEVEL y el nivel de sincronización de conversaciones se establece en CM_CONFIRM.

  • Desasigne si el tipo de desasignación está establecido en CM_DEALLOCATE_CONFIRM o en CM_DEALLOCATE_SYNC_LEVEL y el nivel de sincronización de conversaciones se establece en CM_CONFIRM.

  • Send_Data en las siguientes circunstancias:

    • El tipo de envío se establece en CM_SEND_AND_CONFIRM.

    • El tipo de envío se establece en CM_SEND_AND_PREPARE_TO_RECEIVE y el tipo de preparación para recibir se establece en CM_PREPARE_TO_RECEIVE_CONFIRM.

    • El tipo de envío se establece en CM_SEND_AND_PREPARE_TO_RECEIVE, el tipo de preparación para recibir se establece en CM_PREPARE_TO_RECEIVE_SYNC_LEVEL y el nivel de sincronización se establece en CM_CONFIRM.

    • El tipo de envío se establece en CM_SEND_AND_DEALLOCATE y el tipo de desasignación se establece en CM_DEALLOCATE_CONFIRM.

    • El tipo de envío se establece en CM_SEND_AND_DEALLOCATE, el tipo de desasignación se establece en CM_DEALLOCATE_SYNC_LEVEL y el nivel de sincronización se establece en CM_CONFIRM.

    El programa local recibe una solicitud de confirmación a través del parámetro status_received de Receive. El programa local solo puede emitir Confirmado si el parámetro status_received está establecido en uno de los siguientes valores:

  • CM_CONFIRM_RECEIVED

  • CM_CONFIRM_SEND_RECEIVED

  • CM_CONFIRM_DEALLOC_RECEIVED