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