Set_Return_Control (CPI-C)
La llamada de Set_Return_Control (nombre de función cmsrc) se emite mediante el programa de invocación para especificar cuándo la unidad lógica local (LU), que actúa en la solicitud de sesión de la llamada Asignar de programas locales, debe devolver el control al programa local.
Sintaxis
CM_ENTRY Set_Return_Control(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *return_control,
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.
return_control
Parámetro proporcionado. Especifica cuándo la LU local, que actúa en la llamada Allocate , debe devolver el control al programa local. A continuación se muestran los valores permitidos:
CM_IMMEDIATE
La LU asigna una sesión ganadora de contención, si hay una disponible inmediatamente, y devuelve el control al programa.
CM_WHEN_SESSION_ALLOCATED
La LU no devuelve el control al programa hasta que asigna una sesión o encuentra errores. Si una sesión no está disponible, el programa espera uno. (Si el límite de sesión es cero, la LU devuelve el control inmediatamente).
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_PROGRAM_STATE_CHECK
Código de retorno principal; la conversación no está en estado INITIALIZE.
CM_PROGRAM_PARAMETER_CHECK
Código de retorno principal; el valor especificado por conversation_ID o return_control no es válido.
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 estado INITIALIZE.
No hay ningún cambio de estado.
Comentarios
Esta llamada invalida el control de retorno predeterminado establecido por Initialize_Conversation. De forma predeterminada, se devuelve el control cuando se asigna la sesión. Esta llamada no se puede emitir después de que se haya emitido la llamada de asignación .
Para obtener más información sobre las sesiones, consulte Escritura de aplicaciones CPI-C.
Si la LU no puede asignar una sesión, la notificación se devuelve en la llamada Allocate .