0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 #include <stdio.h>
0029 #include <stdlib.h>
0030 #include <string.h>
0031 #include "tsdef.h"
0032 #include "tsconf.h"
0033 #if (client == MAC)
0034
0035 #endif
0036 #include "tsfonc.h"
0037 #include "tsmes.h"
0038 #include "tstype.h"
0039 #include "tsext.h"
0040 #include "functs.h"
0041 #include "tsarcad.h"
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059 Longint FAR_PASCAL
0060 TSDescTrait (char *NomTrait,
0061 Longint NumVer,
0062 pS_DescTrait *DescTrait)
0063 {
0064 Longint CR;
0065 Longint code_param;
0066
0067 #if (client == MAC)
0068 ConnHandle NumSocket;
0069 #else
0070 int NumSocket;
0071 #endif
0072 short int CodeFonc;
0073 Longint Resultat;
0074
0075
0076
0077 code_param = ok;
0078 if (NomTrait == NULL)
0079 code_param = p_nomtrait;
0080 if (code_param != ok)
0081 return (Gestion_Erreur (erreur_chaine_vide, code_param));
0082
0083
0084
0085 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0086 return Resultat;
0087
0088
0089
0090 if( compress_on)
0091 CodeFonc = fonc_tsdesctrait;
0092 else
0093 CodeFonc = -(fonc_tsdesctrait - MAX_FUNCT_NUMBER);
0094 if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short,
0095 p_codefonc))
0096 != ok)
0097 return Resultat;
0098
0099
0100
0101 if ((Resultat = Emission (NumSocket, (char *) &NumVer, taille_long, p_numver))
0102 != ok)
0103 return Resultat;
0104
0105 if ((Resultat = Emission (NumSocket, NomTrait, TAILLE_NOM_TRAITEMENT,
0106 p_nomtrait)) != ok)
0107 return Resultat;
0108
0109
0110
0111 #if ((client!=PC) && (client !=MAC))
0112 if ((Resultat = Fin_Emission (NumSocket))
0113 == erreur_fin_emission)
0114 return Resultat;
0115 #endif
0116
0117
0118
0119 if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0120 != ok)
0121 return Resultat;
0122
0123 if (CR == ok)
0124
0125 if ((Resultat = Reception_DescTrait (NumSocket, DescTrait, p_desctrait))
0126 != ok)
0127 return Resultat;
0128
0129
0130
0131 Fin_Communication (NumSocket);
0132
0133 return CR;
0134
0135 }
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154 Longint FAR_PASCAL
0155 TSDescDiag ( char *NomDiag,
0156 Longint NumVer,
0157 pS_DescDiag *DescDiag)
0158
0159 {
0160 Longint CR;
0161 Longint code_param;
0162
0163 #if (client == MAC)
0164 ConnHandle NumSocket;
0165 #else
0166 int NumSocket;
0167 #endif
0168 short int CodeFonc;
0169 Longint Resultat;
0170
0171 char buffer[taille_short+TAILLE_NOM_DIAGNOSTIC+taille_long];
0172
0173
0174
0175 code_param = ok;
0176
0177 if (NomDiag == NULL)
0178 code_param = p_nomdiag;
0179 if (code_param != ok)
0180 return (Gestion_Erreur (erreur_chaine_vide, code_param));
0181
0182
0183
0184
0185 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0186 return Resultat;
0187
0188
0189
0190 if(compress_on)
0191 CodeFonc = fonc_tsdescdiag;
0192 else
0193 CodeFonc = -(fonc_tsdescdiag - MAX_FUNCT_NUMBER);
0194
0195 memcpy(buffer, (char *)&CodeFonc, taille_short);
0196 memcpy(&buffer[taille_short],(char *) &NumVer, taille_long);
0197 strcpy(&buffer[taille_short+taille_long],NomDiag );
0198
0199
0200
0201 if ((Resultat = Emission (NumSocket, buffer,
0202 (taille_short + TAILLE_NOM_DIAGNOSTIC + taille_long) , p_codefonc)) != ok)
0203 return Resultat;
0204
0205
0206
0207
0208 #if ((client!=PC) && (client !=MAC))
0209 if ((Resultat = Fin_Emission (NumSocket))
0210 == erreur_fin_emission)
0211 return Resultat;
0212 #endif
0213
0214
0215
0216 if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0217 != ok)
0218 return Resultat;
0219
0220 if (CR == ok)
0221
0222 if ((Resultat = Reception_DescDiag (NumSocket, DescDiag, p_descdiag))
0223 != ok)
0224 return Resultat;
0225
0226
0227
0228 Fin_Communication (NumSocket);
0229
0230 return CR;
0231
0232 }
0233
0234
0235
0236
0237
0238
0239
0240
0241
0242
0243
0244
0245
0246
0247
0248
0249
0250
0251 Longint FAR_PASCAL
0252 TSDescDon (char *NomDon,
0253 pS_DescDon *DescDon)
0254 {
0255 Longint CR;
0256 Longint code_param;
0257 #if (client == MAC)
0258 ConnHandle NumSocket;
0259 #else
0260 int NumSocket;
0261 #endif
0262 short int CodeFonc;
0263 Longint Resultat;
0264 char buffer[TAILLE_NOM_DONNEE+taille_short];
0265 char *pt_comment;
0266 char *pt_char;
0267
0268
0269 code_param = ok;
0270
0271 if (NomDon == NULL)
0272 code_param = p_nomdon;
0273 if (code_param != ok)
0274 return (Gestion_Erreur (erreur_chaine_vide, code_param));
0275
0276
0277 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0278 return Resultat;
0279
0280 if (compress_on)
0281 CodeFonc = fonc_tsdescdon;
0282 else
0283 CodeFonc = -(fonc_tsdescdon - MAX_FUNCT_NUMBER);
0284
0285 memcpy(buffer, (char *)&CodeFonc, taille_short);
0286 strcpy(&buffer[taille_short], NomDon);
0287
0288
0289
0290 if ((Resultat = Emission (NumSocket, buffer,
0291 taille_short+TAILLE_NOM_DONNEE, p_codefonc))
0292 != ok)
0293 return Resultat;
0294
0295
0296
0297 #if ((client!=PC) && (client !=MAC))
0298 if ((Resultat = Fin_Emission (NumSocket))
0299 == erreur_fin_emission)
0300 return Resultat;
0301 #endif
0302
0303
0304
0305 if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0306 != ok)
0307 return Resultat;
0308
0309 if (CR == ok)
0310
0311 if ((Resultat = Reception_DescDon (NumSocket, DescDon, p_descdon))
0312 != ok)
0313 return Resultat;
0314
0315
0316
0317 Fin_Communication (NumSocket);
0318
0319 return CR;
0320
0321 }
0322
0323
0324
0325
0326
0327
0328
0329
0330
0331
0332
0333
0334
0335
0336
0337
0338
0339
0340
0341
0342
0343
0344
0345 Longint FAR_PASCAL
0346 TSExist (char *NomDon,
0347 pS_Entree Entrees,
0348 Longint *NbCoord,
0349 Longint *NumVer,
0350 Longint *Certif,
0351 char *Date,
0352 char *Heure)
0353
0354 {
0355 Longint CR;
0356 Longint CoordNb;
0357 Longint CertifNb;
0358 Longint code_param;
0359 char buffer[TAILLE_NOM_DONNEE+taille_long+taille_short];
0360
0361 #if (client == MAC)
0362 ConnHandle NumSocket;
0363 #else
0364 int NumSocket;
0365 #endif
0366 short int CodeFonc;
0367 Longint Resultat;
0368
0369
0370
0371 code_param = ok;
0372
0373 if (NomDon == NULL)
0374 code_param = p_nomdon;
0375 if (Date == NULL)
0376 code_param = p_date;
0377 if (Heure == NULL)
0378 code_param = p_heure;
0379 if (Entrees->union_var.lval < 0)
0380 code_param = p_numchoc;
0381
0382 if (code_param != ok)
0383 return (Gestion_Erreur (erreur_chaine_vide, code_param));
0384
0385
0386
0387 if (NbCoord == NULL)
0388 code_param = p_nbcoord;
0389 if (Certif == NULL)
0390 code_param = p_certif;
0391
0392 if (code_param != ok)
0393 return (Gestion_Erreur (erreur_tableau_vide, code_param));
0394
0395 if(compress_on)
0396 CodeFonc = fonc_tsexist;
0397 else
0398 CodeFonc = -(fonc_tsexist - MAX_FUNCT_NUMBER);
0399
0400
0401
0402 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0403 return Resultat;
0404
0405
0406 if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
0407 != ok)
0408 return Resultat;
0409
0410 if ((Resultat = Emission (NumSocket, NomDon, TAILLE_NOM_DONNEE, p_nomdon))
0411 != ok)
0412 return Resultat;
0413
0414 if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
0415 != ok)
0416 return Resultat;
0417
0418
0419
0420
0421 #if ((client!=PC) && (client !=MAC))
0422 if ((Resultat = Fin_Emission (NumSocket))
0423 == erreur_fin_emission)
0424 return Resultat;
0425 #endif
0426
0427
0428
0429 if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0430 != ok)
0431 return Resultat;
0432
0433 if (CR == ok)
0434 {
0435 if ((Resultat = Reception (NumSocket, (char *) &CoordNb, taille_long, p_nbcoord))
0436 != ok)
0437 return Resultat;
0438
0439 if ((Resultat = Reception (NumSocket, (char *) NbCoord, CoordNb, p_nbcoord))
0440 != ok)
0441 return Resultat;
0442
0443 if ((Resultat = Reception (NumSocket, (char *) NumVer, taille_long, p_numver))
0444 != ok)
0445 return Resultat;
0446
0447 if ((Resultat = Reception (NumSocket, (char *) &CertifNb, taille_long, p_certif))
0448 != ok)
0449 return Resultat;
0450 if(CertifNb > 256) {
0451 int i;
0452 Longint *ptmp_certif=(Longint *)calloc(sizeof(Longint),CertifNb);
0453 if ((Resultat = Reception (NumSocket, (char *) ptmp_certif, CertifNb,
0454 p_certif)) != ok)
0455 return Resultat;
0456 for(i=0; i < 64 ; i++)
0457 Certif[i]= ptmp_certif[i];
0458 }
0459 else
0460 if ((Resultat = Reception (NumSocket, (char *) Certif, CertifNb,
0461 p_certif)) != ok)
0462 return Resultat;
0463
0464 if ((Resultat = Reception (NumSocket, Date, TAILLE_DATE, p_date))
0465 != ok)
0466 return Resultat;
0467
0468 if ((Resultat = Reception (NumSocket, Heure, TAILLE_HEURE, p_heure))
0469 != ok)
0470 return Resultat;
0471 }
0472
0473
0474 Fin_Communication (NumSocket);
0475
0476 return CR;
0477
0478 }