routproc

La fonction routproc est un exemple de procédure de routage. Il doit être fourni dans le cadre de l’application. Il est appelé par le module d’accès dynamique (DMOD) avec un message qui peut ou non être pour cette application Le DMOD appelle les procédures de routage à son tour jusqu’à ce que l’on accepte le message.

Syntaxe

  
DWORD routproc(   
BUFHDR *msgptr,   
USHORT locl,   
USHORT retstat   
);  

Paramètres

msgptr
Pointeur vers le message passé par le DMOD à la procédure de routage.

locl
Localité à partir de laquelle le message a été reçu (si retstat indique le message retourné) ou localité vers laquelle le chemin d’accès a été perdu (si retstat indique une erreur de chemin d’accès).

retstat
Raison de l’appel :

CEDINMSG (1) : message retourné.

CEDINLLN (2) : erreur de chemin d’accès (voir remarques ci-dessous).

Valeur renvoyée

TRUE
La procédure de routage a accepté le message.

FALSE
Le message ne concerne pas cette procédure de routage.

Remarques

La procédure de routage doit d’abord appeler sbpurcvx, qui gère tous les messages de réponse Open, comme suit :

sbpurcvx(&msgptr, locl, retstat)

Un code de retour TRUE de sbpurcvx indique que sbpurcvx a accepté le message ; une réponse d’erreur open a été reçue pour cette application et l’emplacement des ressources continue. La procédure de routage ne doit plus traiter le message et doit retourner TRUE pour empêcher le DMOD d’appeler d’autres procédures de routage.

Un code de retour FALSE de sbpurcvx indique que la procédure de routage doit :

  • Si le message concerne cette application, assumez la responsabilité du message et retournez TRUE pour empêcher le DMOD d’appeler d’autres procédures de routage.

  • Si le message ne concerne pas cette application, retournez FALSE afin que le DMOD tente d’autres procédures de routage.

    Si une erreur de chemin d’accès est retournée, msgptr ne pointe pas vers un message valide, et aucun autre message d’interface de gestion des fonctions (FMI) ne sera retourné pour la valeur de localité indiquée. L’application est responsable de la fin de toutes les sessions à l’aide de cette localité. La procédure de routage doit retourner FALSE. Cela garantit que la localité perdue est signalée à toutes les autres procédures de routage.

    Si le message concerne cette application, la procédure de routage peut soit traiter le message immédiatement, soit placer le message dans une file d’attente d’application, puis publier l’application à l’aide d’un sémaphore. Pour plus d’informations, consultez Réception de messages.