routproc

La fonction routproc est un exemple de procédure de routage. Elle doit être fournie dans le cadre de l’application. Elle est appelée 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’un d’eux accepte le message.

Syntaxe

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

Paramètres

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

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

retstat
Raison de l’appel :

CEDINMSG (1) : message retourné.

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

Valeur renvoyée

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

false
Le message n’est pas pour cette procédure de routage.

Remarques

La procédure de routage doit d’abord appeler sbpurcvx, qui gère les messages de réponse ouverts, 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 ouverte a été reçue pour cette application et l’emplacement de la ressource continue. La procédure de routage ne doit plus traiter le message et doit retourner la valeur true pour empêcher DMOD d’appeler d’autres procédures de routage.

Le code de retour false de sbpurcvx indique que la procédure de routage doit :

  • Si le message est destiné à cette application, prenez la responsabilité du message et renvoyez true pour empêcher le Dmod d’appeler d’autres procédures de routage.

  • Si le message n’est pas destiné à cette application, retournez false afin que le Dmod essaie de poursuivre les procédures de routage.

    Si une erreur de chemin d’accès est retournée, msgptr ne pointe pas vers un message valide et plus aucun message FMI (Function Management Interface) n’est retourné pour la valeur de localité indiquée. L’application est chargée de mettre fin à toutes les sessions qui utilisent cette localité. La procédure de routage doit retourner la valeur false. Cela garantit que la localité perdue est signalée à toutes les autres procédures de routage.

    Si le message est destiné à 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 le poster à l’aide d’un sémaphore. Pour plus d’informations, consultez réception de messages.