next up previous contents
Next: Affichage d'un champ Up: Tutorial Previous: Utilisation

Connection - Déconnection

La connection à xgsc se fait avec la fonction gsc_client(). Cette fonction alloue une structure pour le canal de communication et initialise la connection. La déconnection est automatique, et xgsc survit au client. Si le client qui désire tuer xgsc le fait avec la fonction gsc_close_connection(). Les exemples suivants montrent une connection suivit d'une déconnection en C et en Fortran.

 
#include <gop.h>
int    actual_status=0;

main()
{
   struct gop_connect *connect_gsc;
   char   option[20];
   int    delay=1;
   int    repeat=10;
   ...
   if (gsc_client(connect_gsc, actual_status, option, delay, repeat, verbose)
                 != GOP_OK){...}
   actual_status = 1;
   ...
   if (gsc_quit(connect_gsc) != GOP_OK){...}
}
 
   program xxxx
  
   integer    connect_gsc
   integer    actual_status     /0/
   common     / status_common / actual_status
   character*20   option[20]
   integer    delay             /1/
   integer    repeat            /10/
   integer    status
   ...
   call gsc_client(connect_gsc, actual_status, option, delay, 
  .                repeat, verbose, status)
   if(status.ne.0) ...
   actual_status = 1
   ...
   call gsc_quit(connect_gsc, status)
   if(status.ne.0) ...
   ...
   end
La fonction gsc_client exécute la commande système gsc suivie des options donnée par la chaîne de caractère option.

Comme le démarage de xgsc peut prendre du temps, le client attend que la socket soit créée. La présence de la socket est testée au maximum repeat fois avec un interval de temps donné en secondes entières de durée = delay [secondes]. Le niveau de verbosité du protocole de communication est initialisé avec la variable verbose: 0, 1, 2 et 3 à 9 (voir libgop.a).

Le flag actual_status indique par 1 que le client se croit connecté et par 0 qu'il n'est pas connecté. Ce flag global de déterminer la tactique de connection si la commande gsc_client est lancée plusieurs fois dans le même programme.



WEBER Luc
Mon May 10 13:40:23 MET DST 1999