routproc
La función routproc es un procedimiento de enrutamiento de ejemplo. Debe proporcionarse como parte de la aplicación. Lo llama el Módulo de acceso dinámico (DMOD) con un mensaje que puede o no ser para esta aplicación. El DMOD llama a los procedimientos de enrutamiento a su vez hasta que uno acepte el mensaje.
Sintaxis
DWORD routproc(
BUFHDR *msgptr,
USHORT locl,
USHORT retstat
);
Parámetros
msgptr
Puntero al mensaje pasado por el DMOD al procedimiento de enrutamiento.
locl
Localidad desde la que se recibió el mensaje (si retstat indica el mensaje devuelto) o localidad a la que se perdió la ruta de acceso (si retstat indica el error de ruta de acceso).
retstat
Motivo de la llamada:
CEDINMSG (1): mensaje devuelto.
CEDINLLN (2): error de ruta de acceso (vea los comentarios a continuación).
Valor devuelto
TRUE
El procedimiento de enrutamiento ha aceptado el mensaje.
FALSE
El mensaje no es para este procedimiento de enrutamiento.
Comentarios
El procedimiento de enrutamiento primero debe llamar a sbpurcvx, que controla los mensajes de respuesta Open, como se indica a continuación:
sbpurcvx(&msgptr, locl, retstat)
Un código devuelto de TRUE de sbpurcvx indica que sbpurcvx ha aceptado el mensaje; se ha recibido una respuesta de error open para esta aplicación y la ubicación del recurso continúa. El procedimiento de enrutamiento no debe procesar el mensaje más adelante y debe devolver TRUE para evitar que DMOD llame a procedimientos de enrutamiento adicionales.
Un código devuelto de FALSE de sbpurcvx indica que el procedimiento de enrutamiento debe:
Si el mensaje es para esta aplicación, tome la responsabilidad del mensaje y devuelva TRUE para evitar que DMOD llame a procedimientos de enrutamiento adicionales.
Si el mensaje no es para esta aplicación, devuelva FALSE para que DMOD intente seguir enrutando los procedimientos.
Si se devuelve un error de ruta de acceso, msgptr no apuntará a un mensaje válido y no se devolverán más mensajes de interfaz de administración de funciones (FMI) para el valor de localidad indicado. La aplicación es responsable de finalizar todas las sesiones con esta localidad. El procedimiento de enrutamiento debe devolver FALSE. Esto garantiza que la localidad perdida se notifique a todos los demás procedimientos de enrutamiento.
Si el mensaje es para esta aplicación, el procedimiento de enrutamiento puede procesar el mensaje inmediatamente o colocarlo en una cola de aplicaciones y, a continuación, publicar la aplicación mediante un semáforo. Para obtener más información, consulte Recepción de mensajes.