Le protocole CAB
================

Le protocole CAB constitue un ensemble de messages AES qui peuvent
tre utiliss par des programmes GEM pour transfrer des informations
spcifiques  CAB. CAB prends en charge la coordination de ces
oprations.
Une application possible:
Si une information ou une mise  jour est disponible sur Internet, le
protocole CAB peut tre utilis pour accder  cette information.
CAB peut alors charger et afficher la donne.


Description des messages
========================

CAB_HELLO ($CAB8) (message de CAB)
-----------------
Aprs son lancement, CAB envoie le message suivant  tous les
programmes en excution :

msg[0] = $CAB8
msg[1] = CAB ID
msg[2] = 0
msg[3] = Version du protole CAB (ou par exemple $0100 = v1.00)
msg[4] = Vecteur binaire contenant les protocoles supports (CAB.OVL)
          Bit 0: HTTP
          Bit 1: FTP
          Bit 2: GOPHER
          Bit 3: WAIS
          Bit 4: MAILTO
          Bit 5: NNTP
          Bit 6: TELNET
          Bit 7-15: 0 (reservs)
msg[5] = Vecteur binaire contenant les messages du protocole CAB
         pris en charge :
          Bit 0: CAB_VIEW
          Bit 1: CAB_MAIL, CAB_MAILSEND
          Bit 2: CAB_REQUESTSTATUS, CAB_RELEASESTATUS, CAB_STATUS,
                 CAB_EXIT
          Bit 3-15: 0 (reservs)
msg[6] = 0
msg[7] = 0



CAB_SUPPORT ($CABB) (message vers CAB)
-------------------
Si CAB reoit ce message, il rponds en envoyant un message CAB_HELLO.
Si aucun message CAB_HELLO n'est reu, la version de CAB est
antrieure  l'implmentation du protocole CAB.
N'importe quel programme demande l'information fournie par les
messages CAB_HELLO doit envoyer, aprs son dmarrage, un message
CAB_SUPPORT  CAB. Si CAB est dmarr plus tard, il enverra
automatiquement un message CAB_HELLO au programme.

msg[0] = $CABB
msg[1] = ID des PRGs
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0

CAB_VIEW ($CAB3) (message vers CAB)
----------------
Identique  VA_START mais les URLs sont envoyes en lieu et place des
noms de fichier et CAB afiches le fichier correspondant.

msg[0] = $CAB3
msg[1] = ID des PRGs
msg[2] = 0
msg[3] = \ Pointeur vers l'URL
msg[4] = /
msg[5] = 1 = CAB affiche l'URL dans une nouvelle fentre
         0 = CAB affiche l'URL dans la fentre active
msg[6] = 0
msg[7] = 0



CAB_REQUESTSTATUS ($CAB5) (message vers CAB)
-------------------------
Peut-tre envoy vers CAB afin de dterminer si CAB est actuellement
en ligne ou pas. CAB renvoie en rponse le message CAB_STATUS et
aprs tout changement de son tat de connexion.

msg[0] = $CAB5
msg[1] = ID des PRGs
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0



CAB_RELEASESTATUS ($CAB7) (message vers CAB)
-------------------------
Un programme doit envoy ce message vers CAB si il ne veux plus
recevoir l'tat de connexion de CAB qu'il peut demander par
l'intermdiaire du message CAB_REQUESTSTATUS (par ex. : Si
le programme va tre quitt).

msg[0] = $CAB7
msg[1] = ID des PRGs
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0



CAB_STATUS ($CAB6) (message from CAB)
------------------
CAB envoies ce message  tous les programmes qui ont demand  tre
tenu inform de l'tat de connexion de CAB par le message
CAB_REQUESTSTATUS.

msg[0] = $CAB6
msg[1] = CAB ID
msg[2] = 0
msg[3] = 1 = CAB on-line
         0 = CAB off-line
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0



CAB_EXIT ($CAB1) (message from CAB)
----------------
CAB envoies ce message  tous les programmes qui ont demand  tre
tenu inform de l'tat de connexion de CAB par le message
CAB_REQUESTSTATUS puis CAB est quitt. CAB envoi au pralable le
message CAB_STATUS  tous les programems pour leur indiqu qu'il est
 l'tat hors ligne (off-line).

msg[0] = $CAB1
msg[1] = CAB ID
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0

CAB_MAIL ($CAB9) (message vers CAB)
----------------
Peut-te envoy  CAB pour l'envoi d'un mail.

msg[0] = $CAB9
msg[1] = ID of the PRGs
msg[2] = 0

msg[3] = \ Pointeur vers une URL. Une ligne de sujet peut tre ajoute
            l'URL en utilisant un point d'interrogation comme
msg[4] = / sparateur.

msg[5] = \ Pointeur vers un fichier qui contient le message de mail
msg[6] = / ou null, dans ce cas, CAB ouvre l'diteur pour la saisie
           du message.

msg[7] = Bit vector:
          Bit 0: 0 = Envoi du mail immdiatement
                 1 = Le message de Mail peut-tre pris en charge et
                     ou dit par CAB.
          Bit 1: Le fichier doit tre supprimer par CAB aprs son
                 traitement.
          Bil 2-15: reservs (0)

CAB_MAILSENT ($CABA) (message de CAB)
--------------------
CAB envoie ce message en rponse au message CAB_MAIL pour informer le
programme si le message a t envoy avec un indicateur d'tat.

msg[0] = $CABA
msg[1] = CAB ID
msg[2] = 0
msg[3] = 1 = Mail envoy sans erreur/s
         0 = Une erreur s'est produite, msg [4] indique la nature de
             l'erreur
msg[4] = Retourne le numro de l'erreur, si msg[3] = 0
       = 0: Pas d'URL indiquen.
       = 1: Off-line, la connexion rseau a t perturbe, le serveur
            n'tait pas accessible
       = 2: L'utilisateur a annul l'envoi du mail (c'est--dire
            que le mail tait gr par CAB et donc que l'utilisateur
            a eu cette oportunit
       = 3: Erreur GEMDOS lors de l'accs au fichier de message
       = 4: L'diteur de mail ne peut pas tre trouv
msg[5] = 0
msg[6] = 0
msg[7] = 0




Messages spciaux pour 'Outils de Cache'
========================================

CAB_CCHANGED ($CAB0) (message de et vers CAB)
--------------------
Le cache (c'est--dire CACHE.CAB) a t modifi et doit tre relu.

msg[0] = $CAB0
msg[1] = CAB ID/ID des PRGs
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7]
 0



CAB_EXIT ($CAB1) (message de et vers CAB)
----------------
CAB ou Cache-Tool a t quitts (chaque PRG doit informer l'autre
lorsqu'il est quitt).

msg[0] = $CAB1
msg[1] = CAB ID/ID des PRGs
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0



CAB_PATH ($CAB2) (message de CAB)
----------------
Les rpertoires HTML et/ou de cache ont t modifis. Pour plus de
dtails, rfrez vous  la documentation de 'outil de cache'.

msg[0] = $CAB2
msg[1] = CAB ID
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0



CAB_TERM ($CAB4) (message de CAB)
----------------
L'outil de Cache doit s'arrter.

msg[0] = $CAB4
msg[1] = CAB ID
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0
