tsecri

PURPOSE ^

C/C++ source

SYNOPSIS ^

C/C++ source

DESCRIPTION ^

C/C++ source

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 /*****************************************************************************
0002 
0003    NOM  DU MODULE        :  tsecri.c
0004 
0005    DESCRIPTION DU MODULE :  module client de la bibliotheque TSLib
0006                             ensemble des fonctions d'ecriture
0007 
0008    Auteur       :       Vita-Maria GUZZI
0009    Societe      :       CR2A
0010    Projet       :       TSLib
0011 
0012    Date de Creation :   29/09/92
0013    Modifications    :
0014     01.10.04 (JaS)
0015         TSInitOccTrait    :  nouvelle fonction
0016     TSUpdateOccTrait : nouvelle fonction
0017  *****************************************************************************/
0018 
0019 /*****************************************************************************
0020 
0021    Liste des fonctions du module :
0022 
0023         TSWrite
0024         TSWcertif
0025     TSInitOccTrait
0026     TSUpdateOccTrait
0027 
0028  *****************************************************************************/
0029 
0030 #include <stdio.h>        /* bibliotheques standards           */
0031 #include <stdlib.h>
0032 #include <string.h>
0033 #include "tsdef.h"        /* liste des constantes utilisees    */
0034 #include "tsconf.h"        /* configuration du client           */
0035 #if (client == MAC)
0036 
0037 #endif
0038 #include "tsfonc.h"        /* liste des fonctions appelees   */
0039 #include "tsmes.h"        /* liste des erreurs              */
0040 #include "tstype.h"        /* liste des types de donnees     */
0041 #include "tsext.h"        /* liste des variables globales   */
0042 #include "functs.h"        /* prototypes fcts TSLib */
0043 
0044 /*----------------------------------------------------------------------------
0045 
0046                         TSWrite
0047 
0048   But : fonction envoyant au serveur la liste des parametres a ecrire en
0049         base de donnees et dans les fichiers de mesure
0050 
0051   Arguments :
0052         NomTrait  : nom du traitement
0053         Entrees   : liste des entrees du traitement
0054         Longueurs : longueurs des coordonnees
0055         Certif    : tableau des certifications
0056         TabVal    : tableau des mesures
0057         LongNb    : taille en octets du tableau Longueurs
0058         CertifNb  : taille en octets du tableau Certif
0059         ValNb     : taille en octets du tableau TabVal
0060 
0061   Retour          : compte-rendu d'execution
0062 
0063  ------------------------------------------------------------------------------*/
0064 
0065 
0066 Longint FAR_PASCAL
0067 TSWrite (    char *NomTrait,
0068         pS_Entree Entrees,
0069              Longint *Longueurs,
0070              Longint *Certif,
0071              char *TabVal,
0072         Longint LongNb,
0073         Longint CertifNb,
0074         Longint ValNb        )
0075 
0076 {
0077   Longint CR;
0078   Longint code_param;
0079   Longint numchoc;
0080 
0081 #if (client == MAC)
0082   ConnHandle NumSocket;        /* descripteur de la socket de communication */
0083 #else
0084   int NumSocket;        /* descripteur de la socket de communication */
0085 #endif
0086   short int CodeFonc;        /* code de la fonction TSLib appelee         */
0087   Longint Resultat;        /* compte-rendu d'execution du client        */
0088 
0089   char host[64], *var_env;
0090   int rejeu_ok = 0, len_host = 63 ;
0091 
0092   numchoc = Entrees->union_var.lval;
0093 
0094   /* modif du 05/08/96 pour devtrait */
0095   if (!strcmp(getenv("USER"),"devtrait"))
0096     {
0097      printf("Developpement traitement : Ecriture Choc # %d sous # 77 \n",numchoc);
0098      Entrees->union_var.lval=77;
0099     }
0100 
0101   /* test des parametres de type pointeur */
0102 
0103   code_param = ok;
0104 
0105   if (NomTrait == NULL)
0106     code_param = p_nomtrait;
0107   if (code_param != ok)
0108     return (Gestion_Erreur (erreur_chaine_vide, code_param));
0109 
0110   if (Longueurs == NULL)
0111     code_param = p_longueurs;
0112   if (Certif == NULL)
0113     code_param = p_certif;
0114   if (TabVal == NULL)
0115     code_param = p_tabval;
0116 
0117   /* YB YB YB for CTD !!!!  YB YB YB */
0118      if (!gethostname(host, len_host)) {
0119        /*
0120        if ( (!strncmp(host,"hercule",7)) || (!strncmp(host,"nunki",5)) ||
0121                      (!strncmp(host,"asterope",8)) ) {
0122        */
0123           var_env = getenv("TOUR");
0124           if(var_env) {
0125             if( !strcmp(var_env,"BABEL") )
0126               rejeu_ok = 1;
0127           } 
0128         /* } */
0129      }
0130   /* Fin YB YB YB for CTD !!!!  YB YB YB */
0131 
0132   if (code_param != ok)
0133     return (Gestion_Erreur (erreur_tableau_vide, code_param));
0134 
0135   /* debut de communication */
0136       if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0137         return Resultat;
0138 
0139   /* emission du code de la fonction */
0140   if(compress_on)
0141     CodeFonc = fonc_tswrite;
0142   else
0143     CodeFonc = -(fonc_tswrite - MAX_FUNCT_NUMBER);
0144   if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
0145       != ok)
0146     return Resultat;
0147 
0148 
0149 
0150   /* emission des parametres */
0151   
0152   /*  YB YB YB for CTD !!!!  YB YB YB */
0153 
0154   if ((Resultat = Emission (NumSocket, (char *) &rejeu_ok, taille_long, p_longnb))
0155       != ok)
0156     return Resultat;
0157 
0158   /* Fin YB YB YB for CTD !!!!  YB YB YB */
0159 
0160   if ((Resultat = Emission (NumSocket, NomTrait, TAILLE_NOM_TRAITEMENT, p_nomtrait))
0161       != ok)
0162     return Resultat;
0163 
0164   if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
0165       != ok)
0166     return Resultat;
0167 
0168   if ((Resultat = Emission (NumSocket, (char *) &LongNb, taille_long, p_longnb))
0169       != ok)
0170     return Resultat;
0171 
0172   if ((Resultat = Emission (NumSocket, (char *) Longueurs, LongNb, p_longueurs))
0173       != ok)
0174     return Resultat;
0175 
0176   if ((Resultat = Emission (NumSocket, (char *) &CertifNb, taille_long, p_certifnb))
0177       != ok)
0178     return Resultat;
0179 
0180   if ((Resultat = Emission (NumSocket, (char *) Certif, CertifNb, p_certif))
0181       != ok)
0182     return Resultat;
0183 
0184   if ((Resultat = Emission (NumSocket, (char *) &ValNb, taille_long, p_valnb))
0185       != ok)
0186     return Resultat;
0187 
0188   if ((Resultat = Emission (NumSocket, (char *) TabVal, ValNb, p_tabval))
0189       != ok)
0190     return Resultat;
0191 
0192   /* fin d'emission */
0193 
0194 #if ((client!=PC) && (client !=MAC))
0195   if ((Resultat = Fin_Emission (NumSocket))
0196       == erreur_fin_emission)
0197     return Resultat;
0198 #endif
0199 
0200   /* reception d'un parametre */
0201 
0202   if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0203       != ok)
0204     return Resultat;
0205 
0206   /* fin de communication */
0207 
0208   Fin_Communication (NumSocket);
0209 
0210   return CR;
0211 }
0212 
0213 /*----------------------------------------------------------------------------
0214 
0215                         TSWcertif
0216 
0217   But : fonction envoyant au serveur les certifications associees a une donnee
0218 
0219   Arguments :
0220         NomDon    : nom de la donnee
0221         Entrees   : liste des entrees du traitement
0222         Certif    : tableau des certifications
0223         CertifNb  : taille en octets du tableau Certif
0224 
0225   Retour          : compte-rendu d'execution
0226 
0227 ------------------------------------------------------------------------------*/
0228 
0229 
0230 Longint FAR_PASCAL
0231 TSWcertif (    char *NomDon,
0232              pS_Entree Entrees,
0233              Longint *Certif,
0234              Longint CertifNb   )
0235 
0236 {
0237   Longint CR;
0238   Longint code_param;
0239 
0240 #if (client == MAC)
0241   ConnHandle NumSocket;        /* descripteur de la socket de communication */
0242 #else
0243   int NumSocket;        /* descripteur de la socket de communication */
0244 #endif
0245   short int CodeFonc;        /* code de la fonction TSLib appelee         */
0246   Longint Resultat;        /* compte-rendu d'execution du client        */
0247 
0248   /* test des parametres de type pointeur */
0249 
0250   code_param = ok;
0251 
0252   if (NomDon == NULL)
0253     code_param = p_nomdon;
0254   if (code_param != ok)
0255     return (Gestion_Erreur (erreur_chaine_vide, code_param));
0256 
0257   if (Certif == NULL)
0258     code_param = p_certif;
0259   if (code_param != ok)
0260     return (Gestion_Erreur (erreur_tableau_vide, code_param));
0261 
0262   /* debut de communication */
0263 
0264   if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0265     return Resultat;
0266 
0267   /* emission du code de la fonction */
0268 
0269   if(compress_on)
0270     CodeFonc = fonc_tswcertif;
0271   else
0272     CodeFonc = -(fonc_tswcertif - MAX_FUNCT_NUMBER);
0273   if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
0274       != ok)
0275     return Resultat;
0276 
0277 
0278   /* emission des parametres */
0279 
0280   if ((Resultat = Emission (NumSocket, NomDon, TAILLE_NOM_DONNEE, p_nomdon))
0281       != ok)
0282     return Resultat;
0283 
0284   if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
0285       != ok)
0286     return Resultat;
0287 
0288   if ((Resultat = Emission (NumSocket, (char *) &CertifNb, taille_long, p_certifnb))
0289       != ok)
0290     return Resultat;
0291 
0292   if ((Resultat = Emission (NumSocket, (char *) Certif, CertifNb, p_certif))
0293       != ok)
0294     return Resultat;
0295 
0296   /* fin d'emission */
0297 
0298 #if ((client!=PC) && (client !=MAC))
0299   if ((Resultat = Fin_Emission (NumSocket))
0300       == erreur_fin_emission)
0301     return Resultat;
0302 #endif
0303 
0304   /* reception d'un parametre */
0305 
0306   if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0307       != ok)
0308     return Resultat;
0309 
0310   /* fin de communication */
0311 
0312   Fin_Communication (NumSocket);
0313 
0314   return CR;
0315 
0316 }
0317 
0318 /*----------------------------------------------------------------------------
0319 
0320                         TSInitOccTrait
0321 
0322 But :     fonction envoyant au serveur les param�res �rire 
0323     dans la base de donn�s au d�ut de l'��ution du traitement
0324 Arguments :
0325     NomTrait  : nom du traitement
0326     Entrees   : liste des entrees du traitement
0327 Retour : compte-rendu d'execution
0328 
0329 ------------------------------------------------------------------------------*/
0330 Longint FAR_PASCAL
0331 TSInitOccTrait (char *NomTrait, pS_Entree Entrees)
0332 
0333 {
0334   Longint CR;
0335   Longint code_param;
0336   Longint numchoc;
0337 
0338 #if (client == MAC)
0339   ConnHandle NumSocket;        /* descripteur de la socket de communication */
0340 #else
0341   int NumSocket;        /* descripteur de la socket de communication */
0342 #endif
0343 short int CodeFonc;        /* code de la fonction TSLib appelee         */
0344 Longint Resultat;        /* compte-rendu d'execution du client        */
0345 
0346 char host[64], *var_env;
0347 int rejeu_ok = 0, len_host = 63 ;
0348 
0349     numchoc = Entrees->union_var.lval;
0350 
0351     /* modif du 05/08/96 pour devtrait */
0352     if (!strcmp(getenv("USER"),"devtrait"))
0353       {
0354        printf("Developpement traitement : Ecriture Choc # %d sous # 77 \n",numchoc);
0355        Entrees->union_var.lval=77;
0356       }
0357 
0358     /* test des parametres de type pointeur */
0359 
0360     code_param = ok;
0361     
0362     if (NomTrait == NULL)
0363     code_param = p_nomtrait;
0364     if (code_param != ok)
0365     return (Gestion_Erreur (erreur_chaine_vide, code_param));
0366 
0367     /* Verification si on est en rejeu */
0368     if (!gethostname(host, len_host)) {
0369     /*if (!strncmp(host,"hercule",7)) {*/
0370       var_env = getenv("TOUR");
0371           if(var_env) {
0372             if( !strcmp(var_env,"BABEL") )
0373               rejeu_ok = 1;
0374           } 
0375        /* }*/
0376     }
0377     
0378     /* debut de communication */
0379     if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0380         return Resultat;
0381 
0382     /* emission du code de la fonction */
0383     if(compress_on)
0384         CodeFonc = fonc_tsinitocctrait;
0385     else
0386     CodeFonc = -(fonc_tsinitocctrait - MAX_FUNCT_NUMBER);
0387     if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
0388         != ok)
0389     return Resultat;
0390 
0391     /* emission des parametres */
0392     if ((Resultat = Emission (NumSocket, (char *) &rejeu_ok, taille_long, p_longnb))
0393         != ok)
0394         return Resultat;
0395 
0396     if ((Resultat = Emission (NumSocket, NomTrait, TAILLE_NOM_TRAITEMENT, p_nomtrait))
0397         != ok)
0398     return Resultat;
0399 
0400     if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
0401         != ok)
0402     return Resultat;
0403 
0404     /* fin d'emission */
0405 #if ((client!=PC) && (client !=MAC))
0406     if ((Resultat = Fin_Emission (NumSocket)) == erreur_fin_emission)
0407     return Resultat;
0408 #endif
0409 
0410     /* reception d'un parametre */
0411     if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0412         != ok)
0413     return Resultat;
0414 
0415     /* fin de communication */
0416     Fin_Communication (NumSocket);
0417     return CR;
0418 }
0419 
0420 /*----------------------------------------------------------------------------
0421 
0422                         TSUpdateOccTrait
0423 
0424 But :     fonction envoyant au serveur les param�res �rire 
0425     dans la base de donn�s a la fin de l'��ution du traitement
0426 Arguments :
0427     NomTrait  : nom du traitement
0428     Entrees   : liste des entrees du traitement
0429     Status    : status de l'execution du traitement
0430     Dureems   : duree de l'execution du traitement en millisecondes
0431 Retour : compte-rendu d'execution
0432 
0433 ------------------------------------------------------------------------------*/
0434 Longint FAR_PASCAL
0435 TSUpdateOccTrait (char *NomTrait, pS_Entree Entrees, Longint Status, 
0436           Longint Dureems)
0437 {
0438 Longint CR;
0439 Longint code_param;
0440 Longint numchoc;
0441 
0442 #if (client == MAC)
0443   ConnHandle NumSocket;        /* descripteur de la socket de communication */
0444 #else
0445   int NumSocket;        /* descripteur de la socket de communication */
0446 #endif
0447 short int CodeFonc;        /* code de la fonction TSLib appelee         */
0448 Longint Resultat;        /* compte-rendu d'execution du client        */
0449 
0450     numchoc = Entrees->union_var.lval;
0451 
0452     /* modif du 05/08/96 pour devtrait */
0453     if (!strcmp(getenv("USER"),"devtrait"))
0454       {
0455        printf("Developpement traitement : Ecriture Choc # %d sous # 77 \n",numchoc);
0456        Entrees->union_var.lval=77;
0457       }
0458 
0459     /* test des parametres de type pointeur */
0460 
0461     code_param = ok;
0462 
0463     if (NomTrait == NULL)
0464     code_param = p_nomtrait;
0465     if (code_param != ok)
0466     return (Gestion_Erreur (erreur_chaine_vide, code_param));
0467 /* JS ne le veut plus... 13/10/11
0468     if (Status == 0)
0469         code_param = p_status;
0470     if (code_param != ok)
0471         return (Gestion_Erreur (erreur_tableau_vide, code_param));
0472 */
0473     /* debut de communication */
0474     if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0475     return Resultat;
0476 
0477     /* emission du code de la fonction */
0478     if(compress_on)
0479       CodeFonc = fonc_tsupdateocctrait;
0480     else
0481       CodeFonc = -(fonc_tsupdateocctrait - MAX_FUNCT_NUMBER);
0482     if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
0483         != ok)
0484       return Resultat;
0485 
0486     /* emission des parametres */
0487     if ((Resultat = Emission (NumSocket, NomTrait, TAILLE_NOM_TRAITEMENT, p_nomtrait))
0488         != ok)
0489     return Resultat;
0490 
0491     if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
0492         != ok)
0493     return Resultat;
0494 
0495     if ((Resultat = Emission (NumSocket, (char *) &Status, taille_long, p_status))
0496         != ok)
0497     return Resultat;
0498 
0499     if ((Resultat = Emission (NumSocket, (char *) &Dureems, taille_long, p_duree))
0500         != ok)
0501     return Resultat;
0502 
0503     /* fin d'emission */
0504 #if ((client!=PC) && (client !=MAC))
0505     if ((Resultat = Fin_Emission (NumSocket)) == erreur_fin_emission)
0506     return Resultat;
0507 #endif
0508 
0509     /* reception d'un parametre */
0510     if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0511         != ok)
0512     return Resultat;
0513 
0514     /* fin de communication */
0515     Fin_Communication (NumSocket);
0516     return CR;
0517 }

Community support and wiki are available on Redmine. Last update: 18-Apr-2019.