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
0029 #include <stdio.h>
0030 #include <stdlib.h>
0031 #include <string.h>
0032 #include "tsdef.h"
0033 #include "tsconf.h"
0034 #if (client == MAC)
0035
0036 #endif
0037 #include "tsfonc.h"
0038 #include "tsmes.h"
0039 #include "tstype.h"
0040 #include "tsext.h"
0041 #include "functs.h"
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071 Longint FAR_PASCAL
0072 TSRSigRg ( char *NomDon,
0073 pS_Entree Entrees,
0074 Longint *Rangs,
0075 Longint NbMax,
0076 Longint Extract,
0077 pS_Unite *Unite,
0078 Longint *NumVer,
0079 Longint *Certif,
0080 char *Date,
0081 char *Heure,
0082 Longint *NbMes ,
0083 Longint *MaxReel ,
0084 char HUGE *X ,
0085 char HUGE *Y )
0086
0087 {
0088 Longint CR;
0089 Longint CertifNb;
0090 Longint XNb;
0091 Longint YNb;
0092 char XType[TAILLE_FORMAT_SERVEUR];
0093 char YType[TAILLE_FORMAT_SERVEUR];
0094 Longint code_param;
0095 Longint numchoc;
0096
0097 #if (client == MAC)
0098 ConnHandle NumSocket;
0099 #else
0100 int NumSocket;
0101 #endif
0102 short int CodeFonc;
0103 Longint Resultat;
0104
0105
0106
0107 code_param = ok;
0108
0109 if (NomDon == NULL)
0110 code_param = p_nomdon;
0111 if (Date == NULL)
0112 code_param = p_date;
0113 if (Heure == NULL)
0114 code_param = p_heure;
0115 if (code_param != ok)
0116 return (Gestion_Erreur (erreur_chaine_vide, code_param));
0117
0118
0119
0120 if (Certif == NULL)
0121 code_param = p_certif;
0122 if (Rangs == NULL)
0123 code_param = p_rangs;
0124
0125 if (code_param != ok)
0126 return (Gestion_Erreur (erreur_tableau_vide, code_param));
0127
0128
0129
0130 numchoc = Entrees->union_var.lval;
0131 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0132 return Resultat;
0133
0134
0135 if(compress_on)
0136 CodeFonc = fonc_tsrsigrg;
0137 else
0138 CodeFonc = -(fonc_tsrsigrg - MAX_FUNCT_NUMBER);
0139 if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
0140 != ok)
0141 return Resultat;
0142
0143
0144
0145 if ((Resultat = Emission (NumSocket, NomDon, TAILLE_NOM_DONNEE, p_nomdon))
0146 != ok)
0147 return Resultat;
0148
0149 if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
0150 != ok)
0151 return Resultat;
0152
0153 if ((Resultat = Emission (NumSocket, (char *) Rangs, taille_long * MAX_RANG, p_rangs))
0154 != ok)
0155 return Resultat;
0156
0157 if ((Resultat = Emission (NumSocket, (char *) &NbMax, taille_long, p_nbmax))
0158 != ok)
0159 return Resultat;
0160
0161 if ((Resultat = Emission (NumSocket, (char *) &Extract, taille_long, p_extract))
0162 != ok)
0163 return Resultat;
0164
0165
0166
0167 #if ((client!=PC) && (client !=MAC))
0168 if ((Resultat = Fin_Emission (NumSocket))
0169 == erreur_fin_emission)
0170 return Resultat;
0171 #endif
0172
0173
0174
0175 if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0176 != ok)
0177 return Resultat;
0178
0179 if (CR == ok)
0180 {
0181
0182 if ((Resultat = Reception_Unite (NumSocket, Unite, p_unite))
0183 != ok)
0184 return Resultat;
0185
0186 if ((Resultat = Reception (NumSocket, (char *) NumVer, taille_long, p_numver))
0187 != ok)
0188 return Resultat;
0189
0190 if ((Resultat = Reception (NumSocket, (char *) &CertifNb, taille_long, p_certif))
0191 != ok)
0192 return Resultat;
0193 if(CertifNb > 256) {
0194 int i;
0195 Longint *ptmp_certif=(Longint *)calloc(sizeof(Longint),CertifNb);
0196 if ((Resultat = Reception (NumSocket, (char *) ptmp_certif, CertifNb,
0197 p_certif)) != ok)
0198 return Resultat;
0199 for(i=0; i < 64 ; i++)
0200 Certif[i]= ptmp_certif[i];
0201 }
0202 else
0203 if ((Resultat = Reception (NumSocket, (char *) Certif, CertifNb,
0204 p_certif)) != ok)
0205 return Resultat;
0206
0207 if ((Resultat = Reception (NumSocket, Date, TAILLE_DATE, p_date))
0208 != ok)
0209 return Resultat;
0210
0211 if ((Resultat = Reception (NumSocket, Heure, TAILLE_HEURE, p_heure))
0212 != ok)
0213 return Resultat;
0214
0215 if ((Resultat = Reception (NumSocket, (char *) NbMes, taille_long, p_nbmes))
0216 != ok)
0217 return Resultat;
0218
0219 if ((Resultat = Reception (NumSocket, (char *) MaxReel, taille_long, p_maxreel))
0220 != ok)
0221 return Resultat;
0222
0223 if ((Resultat = Reception (NumSocket, (char *) &XNb, taille_long, p_x))
0224 != ok)
0225 return Resultat;
0226
0227 if ((Resultat = Reception (NumSocket, XType, TAILLE_FORMAT_SERVEUR, p_x))
0228 != ok)
0229 return Resultat;
0230
0231 if ((Resultat = Reception_Tableau (NumSocket, X, XNb, XType, p_x))
0232 != ok)
0233 return Resultat;
0234
0235 if ((Resultat = Reception (NumSocket, (char *) &YNb, taille_long, p_y))
0236 != ok)
0237 return Resultat;
0238
0239 if ((YNb != 0) && (Y == NULL))
0240 {
0241 Fin_Communication (NumSocket);
0242 return (Gestion_Erreur (erreur_tableau_vide, p_y));
0243 }
0244
0245 if ((Resultat = Reception (NumSocket, YType, TAILLE_FORMAT_SERVEUR, p_y))
0246 != ok)
0247 return Resultat;
0248
0249 if ((Resultat = Reception_Tableau (NumSocket, Y, YNb, YType, p_y))
0250 != ok)
0251 return Resultat;
0252
0253 }
0254
0255
0256 Fin_Communication (NumSocket);
0257
0258 return CR;
0259
0260 }
0261
0262
0263
0264
0265
0266
0267
0268
0269
0270
0271
0272
0273
0274
0275
0276
0277
0278
0279
0280
0281
0282
0283
0284
0285
0286
0287
0288
0289
0290 Longint FAR_PASCAL
0291 TSRSigX ( char *NomDon,
0292 pS_Entree Entrees,
0293 Double XI,
0294 Double XF,
0295 Longint NbMax,
0296 Longint Extract,
0297 pS_Unite *Unite,
0298 Longint *NumVer,
0299 Longint *Certif,
0300 char *Date,
0301 char *Heure,
0302 Longint *NbMes,
0303 Longint *MaxReel,
0304 char HUGE *X,
0305 char HUGE *Y )
0306
0307 {
0308 Longint CR;
0309 Longint CertifNb;
0310 Longint XNb;
0311 Longint YNb;
0312 char XType[TAILLE_FORMAT_SERVEUR];
0313 char YType[TAILLE_FORMAT_SERVEUR];
0314 Longint code_param;
0315 Longint numchoc;
0316
0317 #if (client == MAC)
0318 ConnHandle NumSocket;
0319 #else
0320 int NumSocket;
0321 #endif
0322 short int CodeFonc;
0323 Longint Resultat;
0324
0325
0326
0327 code_param = ok;
0328
0329 if (NomDon == NULL)
0330 code_param = p_nomdon;
0331 if (Date == NULL)
0332 code_param = p_date;
0333 if (Heure == NULL)
0334 code_param = p_heure;
0335 if (code_param != ok)
0336 return (Gestion_Erreur (erreur_chaine_vide, code_param));
0337
0338
0339
0340 if (Certif == NULL)
0341 code_param = p_certif;
0342 if (X == NULL)
0343 code_param = p_x;
0344
0345 if (code_param != ok)
0346 return (Gestion_Erreur (erreur_tableau_vide, code_param));
0347
0348
0349
0350 numchoc = Entrees->union_var.lval;
0351 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0352 return Resultat;
0353
0354
0355 if(compress_on)
0356 CodeFonc = fonc_tsrsigx;
0357 else
0358 CodeFonc = -(fonc_tsrsigx - MAX_FUNCT_NUMBER);
0359 if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
0360 != ok)
0361 return Resultat;
0362
0363
0364
0365 if ((Resultat = Emission (NumSocket, NomDon, TAILLE_NOM_DONNEE, p_nomdon))
0366 != ok)
0367 return Resultat;
0368
0369 if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
0370 != ok)
0371 return Resultat;
0372
0373 if ((Resultat = Emission (NumSocket, (char *) &XI, taille_double, p_xi))
0374 != ok)
0375 return Resultat;
0376
0377 if ((Resultat = Emission (NumSocket, (char *) &XF, taille_double, p_xf))
0378 != ok)
0379 return Resultat;
0380
0381 if ((Resultat = Emission (NumSocket, (char *) &NbMax, taille_long, p_nbmax))
0382 != ok)
0383 return Resultat;
0384
0385 if ((Resultat = Emission (NumSocket, (char *) &Extract, taille_long, p_extract))
0386 != ok)
0387 return Resultat;
0388
0389
0390
0391 #if ((client!=PC) && (client !=MAC))
0392 if ((Resultat = Fin_Emission (NumSocket))
0393 == erreur_fin_emission)
0394 return Resultat;
0395 #endif
0396
0397
0398
0399 if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0400 != ok)
0401 return Resultat;
0402
0403 if (CR == ok)
0404 {
0405 if ((Resultat = Reception_Unite (NumSocket, Unite, p_unite))
0406 != ok)
0407 return Resultat;
0408
0409 if ((Resultat = Reception (NumSocket, (char *) NumVer, taille_long, p_numver))
0410 != ok)
0411 return Resultat;
0412
0413 if ((Resultat = Reception (NumSocket, (char *) &CertifNb, taille_long, p_certif))
0414 != ok)
0415 return Resultat;
0416
0417 if(CertifNb > 256) {
0418 int i;
0419 Longint *ptmp_certif=(Longint *)calloc(sizeof(Longint),CertifNb);
0420 if ((Resultat = Reception (NumSocket, (char *) ptmp_certif, CertifNb,
0421 p_certif)) != ok)
0422 return Resultat;
0423 for(i=0; i < 64 ; i++)
0424 Certif[i]= ptmp_certif[i];
0425 }
0426 else
0427 if ((Resultat = Reception (NumSocket, (char *) Certif, CertifNb,
0428 p_certif)) != ok)
0429 return Resultat;
0430
0431 if ((Resultat = Reception (NumSocket, Date, TAILLE_DATE, p_date))
0432 != ok)
0433 return Resultat;
0434
0435 if ((Resultat = Reception (NumSocket, Heure, TAILLE_HEURE, p_heure))
0436 != ok)
0437 return Resultat;
0438
0439 if ((Resultat = Reception (NumSocket, (char *) NbMes, taille_long, p_nbmes))
0440 != ok)
0441 return Resultat;
0442
0443 if ((Resultat = Reception (NumSocket, (char *) MaxReel, taille_long, p_maxreel))
0444 != ok)
0445 return Resultat;
0446
0447 if ((Resultat = Reception (NumSocket, (char *) &XNb, taille_long, p_x))
0448 != ok)
0449 return Resultat;
0450
0451 if ((Resultat = Reception (NumSocket, XType, TAILLE_FORMAT_SERVEUR, p_x))
0452 != ok)
0453 return Resultat;
0454
0455 if ((Resultat = Reception_Tableau (NumSocket, X, XNb, XType, p_x))
0456 != ok)
0457 return Resultat;
0458
0459 if ((Resultat = Reception (NumSocket, (char *) &YNb, taille_long, p_y))
0460 != ok)
0461 return Resultat;
0462
0463 if ((YNb != 0) && (Y == NULL))
0464 {
0465 Fin_Communication (NumSocket);
0466 return (Gestion_Erreur (erreur_tableau_vide, p_y));
0467 }
0468
0469 if ((Resultat = Reception (NumSocket, YType, TAILLE_FORMAT_SERVEUR, p_y))
0470 != ok)
0471 return Resultat;
0472
0473 if ((Resultat = Reception_Tableau (NumSocket, Y, YNb, YType, p_y))
0474 != ok)
0475 return Resultat;
0476
0477 }
0478
0479
0480 Fin_Communication (NumSocket);
0481
0482 return CR;
0483
0484 }
0485
0486
0487
0488
0489
0490
0491
0492
0493
0494
0495
0496
0497
0498
0499
0500
0501
0502
0503
0504
0505
0506
0507
0508
0509
0510
0511
0512
0513
0514
0515 Longint FAR_PASCAL
0516 TSXtrRg ( char *NomDon,
0517 pS_Entree Entrees,
0518 Longint *Indices,
0519 Longint *Rangs,
0520 Longint NbMax,
0521 Longint Extract,
0522 pS_Unite *Unite,
0523 Longint *NumVer,
0524 Longint *Certif,
0525 char *Date,
0526 char *Heure,
0527 Longint *NbMes,
0528 Longint *MaxReel,
0529 char HUGE *X,
0530 char HUGE *Y,
0531 char *Coord )
0532
0533 {
0534 Longint CR;
0535 Longint CertifNb;
0536 Longint XNb;
0537 Longint YNb;
0538 Longint CoordNb;
0539 char XType[TAILLE_FORMAT_SERVEUR];
0540 char YType[TAILLE_FORMAT_SERVEUR];
0541 char CoordType[MAX_INDICE][TAILLE_FORMAT_SERVEUR];
0542 Longint code_param;
0543 Longint numchoc;
0544
0545 #if (client == MAC)
0546 ConnHandle NumSocket;
0547 #else
0548 int NumSocket;
0549 #endif
0550 short int CodeFonc;
0551 Longint Resultat;
0552
0553
0554
0555 code_param = ok;
0556
0557 if (NomDon == NULL)
0558 code_param = p_nomdon;
0559 if (Date == NULL)
0560 code_param = p_date;
0561 if (Heure == NULL)
0562 code_param = p_heure;
0563 if (code_param != ok)
0564 return (Gestion_Erreur (erreur_chaine_vide, code_param));
0565
0566
0567
0568 if (Certif == NULL)
0569 code_param = p_certif;
0570 if (Rangs == NULL)
0571 code_param = p_rangs;
0572 if (Indices == NULL)
0573 code_param = p_indices;
0574 if (X == NULL)
0575 code_param = p_x;
0576
0577 if (code_param != ok)
0578 return (Gestion_Erreur (erreur_tableau_vide, code_param));
0579
0580
0581
0582 numchoc = Entrees->union_var.lval;
0583 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0584 return Resultat;
0585
0586
0587
0588 if(compress_on)
0589 CodeFonc = fonc_tsxtrrg;
0590 else
0591 CodeFonc = -(fonc_tsxtrrg - MAX_FUNCT_NUMBER);
0592 if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
0593 != ok)
0594 return Resultat;
0595
0596
0597
0598 if ((Resultat = Emission (NumSocket, NomDon, TAILLE_NOM_DONNEE, p_nomdon))
0599 != ok)
0600 return Resultat;
0601
0602 if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
0603 != ok)
0604 return Resultat;
0605
0606 if ((Resultat = Emission (NumSocket, (char *) Indices, MAX_INDICE * taille_long,
0607 p_indices))
0608 != ok)
0609 return Resultat;
0610
0611 if ((Resultat = Emission (NumSocket, (char *) Rangs, taille_long * MAX_RANG,
0612 p_rangs))
0613 != ok)
0614 return Resultat;
0615
0616 if ((Resultat = Emission (NumSocket, (char *) &NbMax, taille_long, p_nbmax))
0617 != ok)
0618 return Resultat;
0619
0620 if ((Resultat = Emission (NumSocket, (char *) &Extract, taille_long, p_extract))
0621 != ok)
0622 return Resultat;
0623
0624
0625
0626 #if ((client!=PC) && (client !=MAC))
0627 if ((Resultat = Fin_Emission (NumSocket))
0628 == erreur_fin_emission)
0629 return Resultat;
0630 #endif
0631
0632
0633
0634 if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0635 != ok)
0636 return Resultat;
0637
0638 if (CR == ok)
0639 {
0640 if ((Resultat = Reception_Unite (NumSocket, Unite, p_unite))
0641 != ok)
0642 return Resultat;
0643
0644 if ((Resultat = Reception (NumSocket, (char *) NumVer, taille_long, p_numver))
0645 != ok)
0646 return Resultat;
0647
0648 if ((Resultat = Reception (NumSocket, (char *) &CertifNb, taille_long, p_certif))
0649 != ok)
0650 return Resultat;
0651
0652 if(CertifNb > 256) {
0653 int i;
0654 Longint *ptmp_certif=(Longint *)calloc(sizeof(Longint),CertifNb);
0655 if ((Resultat = Reception (NumSocket, (char *) ptmp_certif, CertifNb,
0656 p_certif)) != ok)
0657 return Resultat;
0658 for(i=0; i < 64 ; i++)
0659 Certif[i]= ptmp_certif[i];
0660 }
0661 else
0662 if ((Resultat = Reception (NumSocket, (char *) Certif, CertifNb,
0663 p_certif)) != ok)
0664 return Resultat;
0665
0666 if ((Resultat = Reception (NumSocket, Date, TAILLE_DATE, p_date))
0667 != ok)
0668 return Resultat;
0669
0670 if ((Resultat = Reception (NumSocket, Heure, TAILLE_HEURE, p_heure))
0671 != ok)
0672 return Resultat;
0673
0674 if ((Resultat = Reception (NumSocket, (char *) NbMes, taille_long, p_nbmes))
0675 != ok)
0676 return Resultat;
0677
0678 if ((Resultat = Reception (NumSocket, (char *) MaxReel, taille_long, p_maxreel))
0679 != ok)
0680 return Resultat;
0681
0682 if ((Resultat = Reception (NumSocket, (char *) &XNb, taille_long, p_x))
0683 != ok)
0684 return Resultat;
0685
0686 if ((Resultat = Reception (NumSocket, XType, TAILLE_FORMAT_SERVEUR, p_x))
0687 != ok)
0688 return Resultat;
0689
0690 if ((Resultat = Reception_Tableau (NumSocket, X, XNb, XType, p_x))
0691 != ok)
0692 return Resultat;
0693
0694 if ((Resultat = Reception (NumSocket, (char *) &YNb, taille_long, p_y))
0695 != ok)
0696 return Resultat;
0697
0698 if ((YNb != 0) && (Y == NULL))
0699 {
0700 Fin_Communication (NumSocket);
0701 return (Gestion_Erreur (erreur_tableau_vide, p_y));
0702 }
0703
0704 if ((Resultat = Reception (NumSocket, YType, TAILLE_FORMAT_SERVEUR, p_y))
0705 != ok)
0706 return Resultat;
0707
0708 if ((Resultat = Reception_Tableau (NumSocket, Y, YNb, YType, p_y))
0709 != ok)
0710 return Resultat;
0711
0712 if ((Resultat = Reception (NumSocket, (char *) &CoordNb, taille_long, p_coord))
0713 != ok)
0714 return Resultat;
0715
0716 if ((CoordNb != 0) && (Coord == NULL))
0717 {
0718 Fin_Communication (NumSocket);
0719 return (Gestion_Erreur (erreur_tableau_vide, p_coord));
0720 }
0721
0722 if ((Resultat = Reception (NumSocket, (char *) CoordType,
0723 MAX_INDICE * TAILLE_FORMAT_SERVEUR, p_coord))
0724 != ok)
0725 return Resultat;
0726
0727 if ((Resultat = Reception_Tab_Coord ( NumSocket, Coord,
0728 &CoordNb, (char *) CoordType, UNIQ, p_coord ))!= ok)
0729 return Resultat;
0730
0731 }
0732
0733
0734 Fin_Communication (NumSocket);
0735
0736 return CR;
0737
0738 }
0739
0740
0741
0742
0743
0744
0745
0746
0747
0748
0749
0750
0751
0752
0753
0754
0755
0756
0757
0758
0759
0760
0761
0762
0763
0764
0765
0766
0767
0768
0769
0770
0771 Longint FAR_PASCAL
0772 TSXtrX ( char *NomDon,
0773 pS_Entree Entrees,
0774 Longint *Indices,
0775 Double XI,
0776 Double XF,
0777 Longint NbMax,
0778 Longint Extract,
0779 pS_Unite *Unite,
0780 Longint *NumVer,
0781 Longint *Certif,
0782 char *Date,
0783 char *Heure,
0784 Longint *NbMes,
0785 Longint *MaxReel,
0786 char HUGE *X,
0787 char HUGE *Y,
0788 char *Coord )
0789 {
0790 Longint CR;
0791 Longint CertifNb;
0792 Longint XNb;
0793 Longint YNb;
0794 Longint CoordNb;
0795 char XType[TAILLE_FORMAT_SERVEUR];
0796 char YType[TAILLE_FORMAT_SERVEUR];
0797 char CoordType[MAX_INDICE][TAILLE_FORMAT_SERVEUR];
0798 Longint code_param;
0799 Longint numchoc;
0800
0801 #if (client == MAC)
0802 ConnHandle NumSocket;
0803 #else
0804 int NumSocket;
0805 #endif
0806 short int CodeFonc;
0807 Longint Resultat;
0808
0809
0810
0811 code_param = ok;
0812
0813 if (NomDon == NULL)
0814 code_param = p_nomdon;
0815 if (Date == NULL)
0816 code_param = p_date;
0817 if (Heure == NULL)
0818 code_param = p_heure;
0819 if (code_param != ok)
0820 return (Gestion_Erreur (erreur_chaine_vide, code_param));
0821
0822
0823
0824 if (Indices == NULL)
0825 code_param = p_indices;
0826 if (Certif == NULL)
0827 code_param = p_certif;
0828 if (X == NULL)
0829 code_param = p_x;
0830
0831 if (code_param != ok)
0832 return (Gestion_Erreur (erreur_tableau_vide, code_param));
0833
0834
0835
0836 numchoc = Entrees->union_var.lval;
0837 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0838 return Resultat;
0839
0840
0841 if(compress_on)
0842 CodeFonc = fonc_tsxtrx;
0843 else
0844 CodeFonc = -(fonc_tsxtrx - MAX_FUNCT_NUMBER);
0845 if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
0846 != ok)
0847 return Resultat;
0848
0849
0850
0851 if ((Resultat = Emission (NumSocket, NomDon, TAILLE_NOM_DONNEE, p_nomdon))
0852 != ok)
0853 return Resultat;
0854
0855 if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
0856 != ok)
0857 return Resultat;
0858
0859 if ((Resultat = Emission (NumSocket, (char *) Indices, MAX_INDICE * taille_long,
0860 p_indices))
0861 != ok)
0862 return Resultat;
0863
0864 if ((Resultat = Emission (NumSocket, (char *) &XI, taille_double, p_xi))
0865 != ok)
0866 return Resultat;
0867
0868 if ((Resultat = Emission (NumSocket, (char *) &XF, taille_double, p_xf))
0869 != ok)
0870 return Resultat;
0871
0872 if ((Resultat = Emission (NumSocket, (char *) &NbMax, taille_long, p_nbmax))
0873 != ok)
0874 return Resultat;
0875
0876 if ((Resultat = Emission (NumSocket, (char *) &Extract, taille_long, p_extract))
0877 != ok)
0878 return Resultat;
0879
0880
0881
0882 #if ((client!=PC) && (client !=MAC))
0883 if ((Resultat = Fin_Emission (NumSocket))
0884 == erreur_fin_emission)
0885 return Resultat;
0886 #endif
0887
0888
0889
0890 if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
0891 != ok)
0892 return Resultat;
0893
0894 if (CR == ok)
0895 {
0896 if ((Resultat = Reception_Unite (NumSocket, Unite, p_unite))
0897 != ok)
0898 return Resultat;
0899
0900 if ((Resultat = Reception (NumSocket, (char *) NumVer, taille_long, p_numver))
0901 != ok)
0902 return Resultat;
0903
0904 if ((Resultat = Reception (NumSocket, (char *) &CertifNb, taille_long, p_certif))
0905 != ok)
0906 return Resultat;
0907
0908 if(CertifNb > 256) {
0909 int i;
0910 Longint *ptmp_certif=(Longint *)calloc(sizeof(Longint),CertifNb);
0911 if ((Resultat = Reception (NumSocket, (char *) ptmp_certif, CertifNb,
0912 p_certif)) != ok)
0913 return Resultat;
0914 for(i=0; i < 64 ; i++)
0915 Certif[i]= ptmp_certif[i];
0916 }
0917 else
0918 if ((Resultat = Reception (NumSocket, (char *) Certif, CertifNb,
0919 p_certif)) != ok)
0920 return Resultat;
0921
0922 if ((Resultat = Reception (NumSocket, Date, TAILLE_DATE, p_date))
0923 != ok)
0924 return Resultat;
0925
0926 if ((Resultat = Reception (NumSocket, Heure, TAILLE_HEURE, p_heure))
0927 != ok)
0928 return Resultat;
0929
0930 if ((Resultat = Reception (NumSocket, (char *) NbMes, taille_long, p_nbmes))
0931 != ok)
0932 return Resultat;
0933
0934 if ((Resultat = Reception (NumSocket, (char *) MaxReel, taille_long, p_maxreel))
0935 != ok)
0936 return Resultat;
0937
0938 if ((Resultat = Reception (NumSocket, (char *) &XNb, taille_long, p_x))
0939 != ok)
0940 return Resultat;
0941
0942 if ((Resultat = Reception (NumSocket, XType, TAILLE_FORMAT_SERVEUR, p_x))
0943 != ok)
0944 return Resultat;
0945
0946 if ((Resultat = Reception_Tableau (NumSocket, X, XNb, XType, p_x))
0947 != ok)
0948 return Resultat;
0949
0950 if ((Resultat = Reception (NumSocket, (char *) &YNb, taille_long, p_y))
0951 != ok)
0952 return Resultat;
0953
0954 if ((YNb != 0) && (Y == NULL))
0955 {
0956 Fin_Communication (NumSocket);
0957 return (Gestion_Erreur (erreur_tableau_vide, p_y));
0958 }
0959
0960 if ((Resultat = Reception (NumSocket, YType, TAILLE_FORMAT_SERVEUR, p_y))
0961 != ok)
0962 return Resultat;
0963
0964 if ((Resultat = Reception_Tableau (NumSocket, Y, YNb, YType, p_y))
0965 != ok)
0966 return Resultat;
0967
0968 if ((Resultat = Reception (NumSocket, (char *) &CoordNb, taille_long, p_coord))
0969 != ok)
0970 return Resultat;
0971
0972 if ((CoordNb != 0) && (Coord == NULL))
0973 {
0974 Fin_Communication (NumSocket);
0975 return (Gestion_Erreur (erreur_tableau_vide, p_coord));
0976 }
0977
0978 if ((Resultat = Reception (NumSocket, (char *) CoordType,
0979 MAX_INDICE * TAILLE_FORMAT_SERVEUR, p_coord))
0980 != ok)
0981 return Resultat;
0982
0983 if ((Resultat = Reception_Tab_Coord (NumSocket, Coord, &CoordNb,
0984 (char *) CoordType, UNIQ, p_coord)) != ok)
0985 return Resultat;
0986 }
0987
0988
0989 Fin_Communication (NumSocket);
0990
0991 return CR;
0992
0993 }
0994
0995
0996
0997
0998
0999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024 Longint FAR_PASCAL
1025 TSGrpRg ( char *NomDon,
1026 pS_Entree Entrees,
1027 Longint *Rangs,
1028 Longint NbMax,
1029 Longint Extract ,
1030 pS_Unite *Unite,
1031 Longint *NumVer,
1032 Longint *Certif,
1033 char *Date ,
1034 char *Heure,
1035 Longint *NbMes,
1036 Longint *MaxReel,
1037 char HUGE *X ,
1038 char HUGE *Y,
1039 char *Coord )
1040 {
1041 Longint CR;
1042 Longint CertifNb;
1043 Longint XNb;
1044 Longint YNb;
1045 Longint CoordNb[MAX_INDICE];
1046 char XType[TAILLE_FORMAT_SERVEUR];
1047 char YType[TAILLE_FORMAT_SERVEUR];
1048 char CoordType[MAX_INDICE][TAILLE_FORMAT_SERVEUR];
1049 Longint code_param;
1050 Longint numchoc;
1051
1052 #if (client == MAC)
1053 ConnHandle NumSocket;
1054 #else
1055 int NumSocket;
1056 #endif
1057 short int CodeFonc;
1058 Longint Resultat;
1059
1060
1061
1062
1063
1064 code_param = ok;
1065
1066 if (NomDon == NULL)
1067 code_param = p_nomdon;
1068 if (Date == NULL)
1069 code_param = p_date;
1070 if (Heure == NULL)
1071 code_param = p_heure;
1072 if (code_param != ok)
1073 return (Gestion_Erreur (erreur_chaine_vide, code_param));
1074
1075
1076
1077 if (Certif == NULL)
1078 code_param = p_certif;
1079 if (Rangs == NULL)
1080 code_param = p_rangs;
1081 if (X == NULL)
1082 code_param = p_x;
1083
1084 if (code_param != ok)
1085 return (Gestion_Erreur (erreur_tableau_vide, code_param));
1086
1087
1088
1089 numchoc = Entrees->union_var.lval;
1090 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
1091 return Resultat;
1092
1093
1094 if(compress_on)
1095 CodeFonc = fonc_tsgrprg;
1096 else
1097 CodeFonc = -(fonc_tsgrprg - MAX_FUNCT_NUMBER);
1098 if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
1099 != ok)
1100 return Resultat;
1101
1102
1103
1104 if ((Resultat = Emission (NumSocket, NomDon, TAILLE_NOM_DONNEE, p_nomdon))
1105 != ok)
1106 return Resultat;
1107
1108 if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
1109 != ok)
1110 return Resultat;
1111
1112 if ((Resultat = Emission (NumSocket, (char *) Rangs, MAX_RANG * taille_long,
1113 p_rangs))
1114 != ok)
1115 return Resultat;
1116
1117 if ((Resultat = Emission (NumSocket, (char *) &NbMax, taille_long, p_nbmax))
1118 != ok)
1119 return Resultat;
1120
1121 if ((Resultat = Emission (NumSocket, (char *) &Extract, taille_long, p_extract))
1122 != ok)
1123 return Resultat;
1124
1125
1126
1127 #if ((client!=PC) && (client !=MAC))
1128 if ((Resultat = Fin_Emission (NumSocket))
1129 == erreur_fin_emission)
1130 return Resultat;
1131 #endif
1132
1133
1134
1135
1136 if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
1137 != ok)
1138 return Resultat;
1139
1140 if (CR == ok)
1141 {
1142 if ((Resultat = Reception_Unite (NumSocket, Unite, p_unite))
1143 != ok)
1144 return Resultat;
1145
1146 if ((Resultat = Reception (NumSocket, (char *) NumVer, taille_long, p_numver))
1147 != ok)
1148 return Resultat;
1149
1150 if ((Resultat = Reception (NumSocket, (char *) &CertifNb, taille_long, p_certif))
1151 != ok)
1152 return Resultat;
1153
1154 if(CertifNb > 256) {
1155 int i;
1156 Longint *ptmp_certif=(Longint *)calloc(sizeof(Longint),CertifNb);
1157 if ((Resultat = Reception (NumSocket, (char *) ptmp_certif, CertifNb,
1158 p_certif)) != ok)
1159 return Resultat;
1160 for(i=0; i < 64 ; i++)
1161 Certif[i]= ptmp_certif[i];
1162 }
1163 else
1164 if ((Resultat = Reception (NumSocket, (char *) Certif, CertifNb,
1165 p_certif)) != ok)
1166 return Resultat;
1167
1168 if ((Resultat = Reception (NumSocket, Date, TAILLE_DATE, p_date))
1169 != ok)
1170 return Resultat;
1171
1172 if ((Resultat = Reception (NumSocket, Heure, TAILLE_HEURE, p_heure))
1173 != ok)
1174 return Resultat;
1175
1176 if ((Resultat = Reception (NumSocket, (char *) NbMes, MAX_MESURE * taille_long,
1177 p_nbmes))
1178 != ok)
1179 return Resultat;
1180
1181 if ((Resultat = Reception (NumSocket, (char *) MaxReel, taille_long, p_maxreel))
1182 != ok)
1183 return Resultat;
1184
1185 if ((Resultat = Reception (NumSocket, (char *) &XNb, taille_long, p_x))
1186 != ok)
1187 return Resultat;
1188
1189 if ((Resultat = Reception (NumSocket, XType, TAILLE_FORMAT_SERVEUR, p_x))
1190 != ok)
1191 return Resultat;
1192
1193 if ((Resultat = Reception_Tableau (NumSocket, X, XNb, XType, p_x))
1194 != ok)
1195 return Resultat;
1196
1197 if ((Resultat = Reception (NumSocket, (char *) &YNb, taille_long, p_y))
1198 != ok)
1199 return Resultat;
1200
1201 if ((YNb != 0) && (Y == NULL))
1202 {
1203 Fin_Communication (NumSocket);
1204 return (Gestion_Erreur (erreur_tableau_vide, p_y));
1205 }
1206
1207 if ((Resultat = Reception (NumSocket, YType, TAILLE_FORMAT_SERVEUR, p_y))
1208 != ok)
1209 return Resultat;
1210
1211 if ((Resultat = Reception_Tableau (NumSocket, Y, YNb, YType, p_y))
1212 != ok)
1213 return Resultat;
1214
1215 if ((Resultat = Reception (NumSocket, (char *) CoordNb, MAX_INDICE * taille_long,
1216 p_coord))
1217 != ok)
1218 return Resultat;
1219
1220 if ((CoordNb[0] != 0) && (Coord == NULL))
1221 {
1222 Fin_Communication (NumSocket);
1223 return (Gestion_Erreur (erreur_tableau_vide, p_coord));
1224 }
1225
1226 if ((Resultat = Reception (NumSocket, (char *) CoordType,
1227 MAX_INDICE * TAILLE_FORMAT_SERVEUR, p_coord))
1228 != ok)
1229 return Resultat;
1230
1231 if ((Resultat = Reception_Tab_Coord (NumSocket, Coord, CoordNb,
1232 (char*) CoordType, MULT, p_coord)) != ok)
1233 return Resultat;
1234 }
1235
1236
1237 Fin_Communication (NumSocket);
1238
1239 return CR;
1240
1241 }
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272 Longint FAR_PASCAL
1273 TSGrpX ( char *NomDon,
1274 pS_Entree Entrees,
1275 Double XI,
1276 Double XF,
1277 Longint NbMax,
1278 Longint Extract,
1279 pS_Unite *Unite,
1280 Longint *NumVer,
1281 Longint *Certif,
1282 char *Date,
1283 char *Heure,
1284 Longint *NbMes,
1285 Longint *MaxReel,
1286 char HUGE *X,
1287 char HUGE *Y,
1288 char *Coord )
1289
1290 {
1291 Longint CR;
1292 Longint CertifNb;
1293 Longint XNb;
1294 Longint YNb;
1295 Longint CoordNb[MAX_INDICE];
1296 char XType[TAILLE_FORMAT_SERVEUR];
1297 char YType[TAILLE_FORMAT_SERVEUR];
1298 char CoordType[MAX_INDICE][TAILLE_FORMAT_SERVEUR];
1299 Longint code_param;
1300 Longint numchoc;
1301
1302 #if (client == MAC)
1303 ConnHandle NumSocket;
1304 #else
1305 int NumSocket;
1306 #endif
1307 short int CodeFonc;
1308 Longint Resultat;
1309
1310
1311
1312 code_param = ok;
1313
1314 if (NomDon == NULL)
1315 code_param = p_nomdon;
1316 if (Date == NULL)
1317 code_param = p_date;
1318 if (Heure == NULL)
1319 code_param = p_heure;
1320 if (code_param != ok)
1321 return (Gestion_Erreur (erreur_chaine_vide, code_param));
1322
1323
1324
1325 if (Certif == NULL)
1326 code_param = p_certif;
1327 if (X == NULL)
1328 code_param = p_x;
1329
1330 if (code_param != ok)
1331 return (Gestion_Erreur (erreur_tableau_vide, code_param));
1332
1333
1334
1335 numchoc = Entrees->union_var.lval;
1336 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
1337 return Resultat;
1338
1339
1340 if(compress_on)
1341 CodeFonc = fonc_tsgrpx;
1342 else
1343 CodeFonc = -(fonc_tsgrpx - MAX_FUNCT_NUMBER);
1344 if ((Resultat = Emission (NumSocket, (char *) &CodeFonc, taille_short, p_codefonc))
1345 != ok)
1346 return Resultat;
1347
1348
1349
1350 if ((Resultat = Emission (NumSocket, NomDon, TAILLE_NOM_DONNEE, p_nomdon))
1351 != ok)
1352 return Resultat;
1353
1354 if ((Resultat = Emission_Entrees (NumSocket, Entrees, p_entrees))
1355 != ok)
1356 return Resultat;
1357
1358 if ((Resultat = Emission (NumSocket, (char *) &XI, taille_double, p_xi))
1359 != ok)
1360 return Resultat;
1361
1362 if ((Resultat = Emission (NumSocket, (char *) &XF, taille_double, p_xf))
1363 != ok)
1364 return Resultat;
1365
1366 if ((Resultat = Emission (NumSocket, (char *) &NbMax, taille_long, p_nbmax))
1367 != ok)
1368 return Resultat;
1369
1370 if ((Resultat = Emission (NumSocket, (char *) &Extract, taille_long, p_extract))
1371 != ok)
1372 return Resultat;
1373
1374
1375
1376 #if ((client!=PC) && (client !=MAC))
1377 if ((Resultat = Fin_Emission (NumSocket))
1378 == erreur_fin_emission)
1379 return Resultat;
1380 #endif
1381
1382
1383
1384 if ((Resultat = Reception (NumSocket, (char *) &CR, taille_long, p_cr))
1385 != ok)
1386 return Resultat;
1387
1388 if (CR == ok)
1389 {
1390 if ((Resultat = Reception_Unite (NumSocket, Unite, p_unite))
1391 != ok)
1392 return Resultat;
1393
1394 if ((Resultat = Reception (NumSocket, (char *) NumVer, taille_long, p_numver))
1395 != ok)
1396 return Resultat;
1397
1398 if ((Resultat = Reception (NumSocket, (char *) &CertifNb, taille_long, p_certif))
1399 != ok)
1400 return Resultat;
1401
1402 if(CertifNb > 256) {
1403 int i;
1404 Longint *ptmp_certif=(Longint *)calloc(sizeof(Longint),CertifNb);
1405 if ((Resultat = Reception (NumSocket, (char *) ptmp_certif, CertifNb,
1406 p_certif)) != ok)
1407 return Resultat;
1408 for(i=0; i < 64 ; i++)
1409 Certif[i]= ptmp_certif[i];
1410 }
1411 else
1412 if ((Resultat = Reception (NumSocket, (char *) Certif, CertifNb,
1413 p_certif)) != ok)
1414 return Resultat;
1415
1416 if ((Resultat = Reception (NumSocket, Date, TAILLE_DATE, p_date))
1417 != ok)
1418 return Resultat;
1419
1420 if ((Resultat = Reception (NumSocket, Heure, TAILLE_HEURE, p_heure))
1421 != ok)
1422 return Resultat;
1423
1424 if ((Resultat = Reception (NumSocket, (char *) NbMes, MAX_MESURE * taille_long,
1425 p_nbmes))
1426 != ok)
1427 return Resultat;
1428
1429 if ((Resultat = Reception (NumSocket, (char *) MaxReel, taille_long, p_maxreel))
1430 != ok)
1431 return Resultat;
1432
1433 if ((Resultat = Reception (NumSocket, (char *) &XNb, taille_long, p_x))
1434 != ok)
1435 return Resultat;
1436
1437 if ((Resultat = Reception (NumSocket, XType, TAILLE_FORMAT_SERVEUR, p_x))
1438 != ok)
1439 return Resultat;
1440
1441 if ((Resultat = Reception_Tableau (NumSocket, X, XNb, XType, p_x))
1442 != ok)
1443 return Resultat;
1444
1445 if ((Resultat = Reception (NumSocket, (char *) &YNb, taille_long, p_y))
1446 != ok)
1447 return Resultat;
1448
1449 if ((YNb != 0) && (Y == NULL))
1450 {
1451 Fin_Communication (NumSocket);
1452 return (Gestion_Erreur (erreur_tableau_vide, p_y));
1453 }
1454
1455 if ((Resultat = Reception (NumSocket, YType, TAILLE_FORMAT_SERVEUR, p_y))
1456 != ok)
1457 return Resultat;
1458
1459 if ((Resultat = Reception_Tableau (NumSocket, Y, YNb, YType, p_y))
1460 != ok)
1461 return Resultat;
1462
1463 if ((Resultat = Reception (NumSocket, (char *) CoordNb, MAX_INDICE * taille_long,
1464 p_coord))
1465 != ok)
1466 return Resultat;
1467
1468 if ((CoordNb[0] != 0) && (Coord == NULL))
1469 {
1470 Fin_Communication (NumSocket);
1471 return (Gestion_Erreur (erreur_tableau_vide, p_coord));
1472 }
1473
1474 if ((Resultat = Reception (NumSocket, (char *) CoordType,
1475 MAX_INDICE * TAILLE_FORMAT_SERVEUR, p_coord))
1476 != ok)
1477 return Resultat;
1478
1479 if ((Resultat = Reception_Tab_Coord (NumSocket, Coord, CoordNb,
1480 (char *) CoordType, MULT, p_coord)) != ok)
1481 return Resultat;
1482
1483 }
1484
1485
1486 Fin_Communication (NumSocket);
1487
1488 return CR;
1489
1490 }