]> SALOME platform Git repositories - modules/kernel.git/blob - src/DSC/DSC_User/Datastream/Calcium/calciumP.h
Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/kernel.git] / src / DSC / DSC_User / Datastream / Calcium / calciumP.h
1 /*  Copyright (C) 2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2  *  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3  * 
4  *  This library is free software; you can redistribute it and/or 
5  *  modify it under the terms of the GNU Lesser General Public 
6  *  License as published by the Free Software Foundation; either 
7  *  version 2.1 of the License. 
8  * 
9  *  This library is distributed in the hope that it will be useful, 
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12  *  Lesser General Public License for more details. 
13  * 
14  *  You should have received a copy of the GNU Lesser General Public 
15  *  License along with this library; if not, write to the Free Software 
16  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17  * 
18  * See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19  *
20  *
21  *
22  *  File   : calciumP.h
23  *  Author : Eric Fayolle (EDF)
24  *  Module : KERNEL
25  */
26
27 /* Outils d'Aide au Couplage de Code de Calcul : $Id$ */
28 #ifndef __CONST_H
29 #define __CONST_H
30
31 #ifndef TrueOrFalse
32 #define TrueOrFalse     int
33 #define TRUE    1
34 #define FALSE   0
35 #endif
36
37 /* Definition d'un type de donnes pour le stockage du   */
38 /* des pas de temps                                     */
39 #ifdef CRAY
40 #define Temps           float
41 #define FORMAT_TEMPS    "%lf"
42 #else
43 #define Temps           double
44 #define FORMAT_TEMPS    "%lg"
45 #endif
46
47 /* Precision relative pour tests d'egalite sur les temps */
48 #define EPSILON  1.e-6
49
50 /* Tailles utilisees lors des transmissions des noms    */
51 #define         VERSION_LEN     144
52 #define         CODE_LEN        72
53 #define         VARIABLE_LEN    144
54 #define         INSTANCE_LEN    72
55 #define         DRIVER_LEN      72
56
57
58 /* Tailles maximums                                     */
59 #define         ARCHI_LEN               64
60 #define         ENV_VAR_LEN             256
61 #define         ACCC_LEN                256
62 #define         PVM_LEN                 256
63 #define         USER_LEN                256
64 #define         MACHINE_LEN             256
65 #define         COMMAND_LEN             256
66 #define         MAX_LEN                 256
67 #define         FICHIER_LEN             256
68
69 /* Nombre de lignes dans une page du fichier erreur     *
70  * de trace                                             */
71 #define         NB_LIGNE_ERREUR         45
72 #define         NB_LIGNE_TRACE          45
73
74
75
76 /* Type d'arret d'une instance                          */
77 #define         CP_NORMALE              10
78 #define         CP_ANORMALE             11
79
80 /* Directive de continuation d'une instance             */
81 #define         CP_CONT                 20
82 #define         CP_ARRET                21
83
84 /* Etat d'une instance                                  */
85 #define         CP_INITIAL              22
86 #define         CP_NON_CONNECTE         23
87 #define         CP_ATTENTE              24
88 #define         CP_EXECUTION            25
89 #define         CP_DECONNECTE           26
90 #define         CP_TERMINE              27
91
92 /* Type de variables                                    */
93 #define         CP_ENTIER               30
94 #define         CP_REEL                 31
95 #define         CP_DREEL                32
96 #define         CP_COMPLEXE             33
97 #define         CP_LOGIQUE              34
98 #define         CP_CHAINE               35
99
100 /* Type de dependance des variables                     */
101 #define         CP_TEMPS                40
102 #define         CP_ITERATION            41
103 #define         CP_SEQUENTIEL           42
104
105 /* Send des variables                                   */
106 #define         CP_IN                   50
107 #define         CP_OUT                  51
108
109 /* Type des instances                                   */
110 #define         CP_NORMAL               60
111 #define         CP_ESPION               62
112
113 /* Niveaux                                              */
114 #define         CP_ILLIMITE             -70
115 #define         CP_AUTESP               -71
116
117 /* Mode de trace                                        */
118 #define         CP_SANS                 80
119 #define         CP_SUCCINCT             81
120 #define         CP_DETAILLE             82
121
122
123 /* Mode d'execution                                     */
124 /* La valeur CP_NORMAL definie pour les types           */
125 /* est aussi utilisee                                   */
126 #define         CP_PAUSE                91
127
128
129 /* Type d'interpolation                                 */
130 #define         CP_LINEAIRE             100
131 #define         CP_ESCALIER             101
132
133
134 /* Repere dans cycle de temps                           */
135 #define         TI                      110
136 #define         TF                      111
137
138 /* Mode de nettoyage des donnees d'un lien              */
139 #define         CP_TOUTES               120
140 #define         CP_AUCUNE               121
141 #define         CP_PAS                  122
142
143 /* Options configurables                                */
144 #define         CP_ROUTE                131
145 #define         CP_ERREURS              132
146
147 /* Valeurs pour l'option CP_ROUTE                       */
148 #define         CP_ROUTE_NORMAL         133
149 #define         CP_ROUTE_DIRECT         134
150
151 /* Valeurs pour l'option Comportement en cas d'erreur   */
152 #define         CP_AUTO                 135
153 #define         CP_BLOCAGE              136
154 #define         CP_MANUEL               137
155
156 /* Type de requete de lecture                           */
157 /* La valeur CP_ATTENTE define pour l'etat d'une        */
158 /* instance est aussi utilisee                          */
159 #define         CP_IMMEDIATE            141
160
161 /* Definition des types de lien                         */
162 #define CPLVAV                          151
163 #define CPLVAF                          152
164 #define CPLVAS                          153
165 #define CPLCAV                          154
166 #define CPLFAV                          155
167
168 /* Codes des entetes des messages (Evenemet *)          */
169 #define         ERREUR                          1000
170 #define         CONNEXION                       1001
171 #define         EMISSION                        1002
172 #define         DECONNEXION                     1003
173 #define         LECTURE_VARIABLE                1004
174 #define         ECRITURE_VARIABLE               1005
175 #define         FIN_DE_PAS                      1006
176 #define         AUIN_FIN_DE_PAS                 1007
177 #define         EFFACEMENT                      1008
178 #define         MODE_EXEC                       1009
179 #define         RUN_N_PAS                       1010
180 #define         DEF_CODE                        1011
181 #define         DEF_INSTANCE                    1012
182 #define         DEF_LIEN                        1013
183 #define         DEM_VERSION                     1014
184 #define         SET_OPTION                      1015
185 #define         DEM_OPTION                      1016
186 #define         DEM_CODES                       1017
187 #define         DEM_INSTS_DE_CODE               1018
188 #define         DEM_VARIABLES                   1019
189 #define         DEM_VARS_DE_CODE                1020
190 #define         DEM_VARS_DE_INST                1021
191 #define         DEM_CARS_DE_VARIABLE            1022
192 #define         DEM_CARS_DE_LIEN                1023
193 #define         ENV_VALEURS_VARIABLE            1024
194 #define         ENV_OPTION                      1025
195 #define         ENV_CODES                       1026
196 #define         ENV_INSTS_DE_CODE               1027
197 #define         ENV_VARIABLES                   1028
198 #define         ENV_VARS_DE_CODE                1029
199 #define         ENV_VARS_DE_INST                1030
200 #define         ENV_CARS_DE_VARIABLE            1031
201 #define         ENV_CARS_DE_LIEN                1032
202 #define         ENV_TOPOLOGY                    1033
203 #define         R_ENV_TOPOLOGY                  1034
204 #define         ENV_MACHINE                     1035
205 #define         R_ENV_MACHINE                   1036
206 #define         ENV_CODE                        1037
207 #define         R_ENV_CODE                      1038
208 #define         ENV_INSTANCE                    1039
209 #define         R_ENV_INSTANCE                  1040
210 #define         ENV_VAR                         1041
211 #define         R_ENV_VAR                       1042
212 #define         ENV_LIEN                        1043
213 #define         R_ENV_LIEN                      1044
214 #define         ENV_ATTRIBUTS                   1045
215 #define         R_ENV_ATTRIBUTS                 1046
216 #define         ENV_VDATA                       1047
217 #define         R_ENV_VDATA                     1048
218
219
220
221
222
223
224
225
226
227 /* Message PVM                                          */
228 #define         P_HOST_DELETE                   2000
229 #define         P_TASK_EXIT                     2001
230
231
232
233
234
235 /* Codes d'erreur                                       */
236
237 /* Pas d'erreur                         */
238 #define         CPOK                    0
239
240 /* Emetteur inconnu                     */
241 #define         CPERIU                  1
242
243 /* Nom de variable inconnu              */
244 #define         CPNMVR                  2
245
246 /* Type entree/sortie incompatible      */
247 #define         CPIOVR                  3
248
249 /* Type inconnu                         */
250 #define         CPTP                    4
251
252 /* Type de variable incompatible        */
253 #define         CPTPVR                  5
254
255 /* Mode de dependance inconnu           */
256 #define         CPIT                    6
257
258 /* Mode dependance incompatible         */
259 #define         CPITVR                  7
260
261 /* Requete non autorisee                */
262 #define         CPRENA                  8
263
264 /* Type de deconnexion incorrect        */
265 #define         CPDNTP                  9
266
267 /* Directive de deconnexion incorrecte  */
268 #define         CPDNDI                  10
269
270 /* Nom de code inconnu                  */
271 #define         CPNMCD                  11
272
273 /* Nom d'instance inconnu               */
274 #define         CPNMIN                  12
275
276 /* Attente                              */
277 #define         CPATTENTE               13
278
279 /* Blocage                              */
280 #define         CPBLOC                  14
281
282 /* Nombre de valeurs transmises egal a zero     */
283 #define         CPNTNULL                15
284
285 /* Longueur de variable insuffisante    */
286 #define         CPLGVR                  16
287
288 /* L'instance doit s'arreter            */
289 #define         CPSTOP                  17
290
291 /* Arret anormal                        */
292 #define         CPATAL                  18
293
294 /* Coupleur abscent                     */
295 #define         CPNOCP                  19
296
297 /* Variable sortante non connectee      */
298 #define         CPCTVR                  20
299
300 /* Nombre de pas a executer egal a zero */
301 #define         CPPASNULL               21
302
303 /* Machine inconnue                     */
304 #define         CPMACHINE               22
305
306 /* COUPLAGE_GROUPE non positionnee      */
307 #define         CPGRNU                  23
308
309 /* Groupe d'instances incorrect         */
310 #define         CPGRIN                  24
311
312 /* Fin du fichier d'entree              */
313 #define         CPFINFICH               25
314
315 /* Erreur de format dans un fichier     */
316 #define         CPERRFICH               26
317
318 /* Requete d'avance de n pas annullee   */
319 /* par passage en mode NORMAL           */
320 #define         CPNORERR                27
321
322 /* Coupleur en mode NORMAL pour une     */
323 /* requete RUN_N_PAS ou DEF_*           */
324 #define         CPRUNERR                28
325
326 /* Option inconnue                      */
327 #define         CPOPT                   29
328
329 /* Valeur d'option inconnue             */
330 #define         CPVALOPT                30
331
332 /* Ecriture impossible par effacement   */
333 #define         CPECREFF                31
334
335 /* Lecture d'une variable non connectee */
336 /* ou n'appartenant pas a un lien VAS   */
337 /* ou VAV s'il s'agit d'une sortante    */
338 #define         CPLIEN                  32
339
340 /* Lecture d'une variable d'une instance*/
341 /* deconnectee avec directive CP_ARRET  */
342 #define         CPINARRET               33
343
344 /* Les lectures sequentielles ne pourront plus          */
345 /* etre satisfaites : instance productrice arretee      */
346 #define         CPSTOPSEQ               34
347
348 /* Erreur dans la chaine de declaration */
349 #define         CPDECL                  35
350
351 /* Erreur dans l'execution de l'instance ajoutee */
352 #define         CPINEXEC                36
353
354 /* Erreur PVM                           */
355 #define         CPPVM                   37
356
357 /* Erreur detectee au niveau de l'interface de couplage */
358 #define         CPERRINST               38
359
360
361 /* IDM : les deux define suivants ont ete rajoutes a la main*/
362
363 /* Erreur de mode d'execution non defini */
364 #define         CPMODE                  39
365
366 /* Erreur d'instance deconnectee */
367 #define         CPINSTDEC               40
368
369 /* Codes des evenements pour le fichier de trace        */
370
371 /* Debut du couplage                                    */
372 #define         DEBUT_COUPLAGE          0
373
374 /* Fin du couplage                                      */
375 #define         FIN_COUPLAGE            1
376
377 /* Execution d'une instance par Oacc                    */
378 #define         EXEC                    2
379
380 /* Connexion d'une instance                             */
381 #define         CPCD                    3
382
383 /* Permission d'emettre accordee a l'instance           */
384 #define         CPALLOW                 4
385
386 /* Requete d'ecriture                                   */
387 #define         CPECRI                  5
388
389 /* Requete de lecture                                   */
390 #define         DEB_LECT                6
391
392 /* Envoi des donnees suite a une requete de lecture     */
393 #define         FIN_LECT                7
394
395 /* Deconnexion d'une instance                           */
396 #define         CPFIN                   8
397
398 /* Requete de fin de pas                                */
399 #define         CPFINP                  9
400
401 /* Requete d'autorisation de fin de pas                 */
402 #define         CPAUFP                  10
403
404 /* Requete d'interdiction de fin de pas                 */
405 #define         CPINFP                  11
406
407 /* Requete d'effacement                                 */
408 #define         CPEFF                   12
409
410 /* Signal d'arret d'une instance                        */
411 #define         STOP                    13
412
413 /* Avis de blocage suite a une requete de lecture       */
414 #define         BLOCAGE                 14
415
416 /* Requete de passage en mode pause                     */
417 #define         CPPAUSE                 15
418
419 /* Requete de passage en mode normal                    */
420 #define         CPNORMAL                16
421
422 /* Requete d'execution de n pas                         */
423 #define         CPNPAS                  17
424
425 /* Requete de definition d'un code                      */
426 #define         CPADCD                  18
427
428 /* Requete de definition d'une instance                 */
429 #define         CPADINCD                19
430
431 /* Requete de definition d'un lien                      */
432 #define         CPADLN                  20
433
434 /* Requete d'identification de version                  */
435 #define         CPIVERS                 21
436
437 /* Requete de demande de la liste des codes             */
438 #define         CPICD                   22
439
440 /* Requete de demande des instances d'un code           */
441 #define         CPIINCD                 23
442
443 /* Requete de demande de la liste des variables globales*/
444 #define         CPIVR                   24
445
446 /* Requete de demande des variables d'un code           */
447 #define         CPIVRCD                 25
448
449 /* Requete de demande des variables d'une instance      */
450 #define         CPIVRIN                 26
451
452 /* Requete de demande d'info sur une variable globale   */
453 #define         CPICAVR                 27
454
455 /* Requete de demande des caracteristiques d'un lien    */
456 #define         CPIILIEN                28
457
458 /* Requete de modification d'une option                 */
459 #define         CPSETOPT                29
460
461 /* Requete de consultation d'une option                 */
462 #define         CPGETOPT                30
463
464 /* Terminaison d'une tache PVM                          */
465 #define         TASK_EXIT               31
466
467 /* Deconnexion d'une machine                            */
468 #define         HOST_DELETE             32
469
470
471 #ifdef PRG_MAIN
472 /*      Fichier principal de la bibliotheque de couplage */
473
474
475 char *  CPMESSAGE[] =   {
476   "Pas d'erreur",
477   "Emetteur inconnu",
478   "Nom de la variable inconnu",
479   "Code entree/sortie differents dans le coupleur et dans le code",
480   "Type de variable inconnu",
481   "Types de variable differents dans le coupleur et dans le code",
482   "Mode de dependance inconnu",
483   "Modes de dependance differents dans le coupleur et dans le code",
484   "Requete non autorisee",
485   "Type de deconnexion incorrect",
486   "Directive de deconnexion incorrecte",
487   "Nom de code inconnu",
488   "Nom d'instance inconnu",
489   "Requete en attente",
490   "Cas de blocage",
491   "Nombre de valeurs transmises egal a zero",
492   "Longueur de variable insuffisante",
493   "L'instance doit s'arreter",
494   "Arret anormal d'une instance",
495   "Coupleur abscent, execution manuelle",
496   "Variable sortante non connectee",
497   "Nombre de pas a executer egal a zero",
498   "Machine non declaree",
499   "La variable d'environnement COUPLAGE_GROUPE n'est pas positionnee",
500   "Le groupe d'instances indique par COUPLAGE_GROUPE est incorrect",
501   "Fin du fichier d'entree",
502   "Erreur de format dans le fichier d'entree",
503   "Requete annulee a cause du passage en mode NORMAL",
504   "Le coupleur est en mode d'execution normal",
505   "Option inconnue",
506   "Valeur d'option incorrecte",
507   "Ecriture impossible a cause d'une requete d'effacement",
508   "Lecture d'une variable incorrectement connectee",
509   "Lecture d'une variable d'une instance deconnectee avec CP_ARRET",
510   "Lectures sequentielles plus satisfaites",
511   "Erreur dans la chaine de declaration",
512   "Erreur dans le lancement de l'instance ajoutee",
513   "Erreur PVM",
514   "Erreur detectee au niveau de l'instance",
515                         };
516
517 #else
518
519 extern char * CPMESSAGE[];
520
521 #endif
522
523
524 /* Type de variables                                    */
525 #define         ENTIER          30
526 #define         REEL            31
527 #define         DREEL           32
528 #define         COMPLEXE        33
529 #define         LOGIQUE         34
530 #define         CHAINE          35
531
532 /* Macro minuscule majuscule */
533 #define         TOUPPER(string) \
534 {\
535   int i, number = strlen(string);\
536   for (i = 0; i < number; i++) string[i] = toupper(string[i]); \
537 }
538
539 /* Macro inferieur */
540 #define         INF(a,b) (a <= b ? a : b)
541
542 /* Macro superieur */
543 #define         SUP(a,b) (a >= b ? a : b)
544
545
546 #endif
547