Salome HOME
bdf4accbadad4d8953952902422264499291bbfd
[modules/kernel.git] / src / DSC / DSC_User / Datastream / Calcium / calciumP.h
1 // Copyright (C) 2007-2023  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 //  File   : calciumP.h
24 //  Author : Eric Fayolle (EDF)
25 //  Module : KERNEL
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   const char *  CPMESSAGE[] = {
474     "",
475     "Emitter unknown",
476     "Variable name unknown",
477     "Different input/output codes in code and supervisor",
478     "Variable type unknown",
479     "Different variable types in code and supervisor",
480     "Dependency mode unknown",
481     "Different dependency modes in code and supervisor",
482     "Unauthorized request",
483     "Unauthorized disconnection request type",
484     "Unauthorized disconnection directive",
485     "Code name unknown",
486     "Instance name unknown",
487     "Waiting request",
488     "Blocking",
489     "Zero value number",
490     "Insufficient variable length",
491     "Instance is going to stop",
492     "Unexpected instance stop",
493     "Manuel execution",
494     "Output variable not connected",
495     "Number of steps to execute is nul",
496     "Non declared computer",
497     "Environment variable COUPLAGE_GROUPE is not set",
498     "Instance group given by COUPLAGE_GROUPE is wrong",
499     "End of input file",
500     "Format error in input file",
501     "Request ignored because of switching to NORMAL mode",
502     "Supervisor is in normal execution mode",
503     "Unknown option",
504     "Option value is wrong",
505     "Impossible to write because of an erasing request",
506     "Reading of a variable wrongly connected",
507     "Reading of a variable of an instance disconnected with CP_ARRET",
508     "Sequential reading no more possible",
509     "Error in declaration",
510     "Error in instance launching",
511     "Communication error",
512     "Error in the instance",
513     "Environment variable CAL_MODE is not set",
514     "Disconnected instance",
515   };
516
517 #else
518
519 extern const 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