1 /* Copyright (C) 2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 * CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
18 * See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 * Author : Eric Fayolle (EDF)
27 /* Outils d'Aide au Couplage de Code de Calcul : $Id$ */
35 #if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
36 #define CPNeedPrototype 1
38 #define CPNeedPrototype 0
42 #if defined(__cplusplus) || defined(c_plusplus)
48 /* Fonctions de connexion */
54 void * component /* Pointeur de type Superv_Component_i* sur le */
55 /* composant SALOME Supervisable */,
56 char * /* S Nom de l instance appelante*/
63 /* Fonction de deconnexion */
69 void * component /* Pointeur de type Superv_Component_i* sur le */
70 /* composant SALOME Supervisable */,
71 int /* E Directive de continuation */
72 /* CP_CONT ou CP_ARRET */
80 /* Fonctions de lecture bloquante */
86 void * component /* Pointeur de type Superv_Component_i* sur le */
87 /* composant SALOME Supervisable */,
88 int /* E Type de dependance ou de lecture */
89 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
90 float * /* E/S Borne inf de l'intervalle de lecture */
91 /* Retourne le pas lu dans le cas de */
92 /* lecture sequentielle */,
93 float * /* E Borne Sup de l'intervalle de lecture */,
94 int * /* E/S Pas d'iteration a lire */
95 /* Retourne le pas lu dans le cas de */
96 /* lecture sequentielle */,
97 char * /* E Nom de la variable a lire */,
98 int /* E Nombre max de valeurs a lire */,
99 int * /* S Nombre de valeurs rellement lues */,
100 int * /* S Tableau d'entiers pour stocker les */
108 void * component /* Pointeur de type Superv_Component_i* sur le */
109 /* composant SALOME Supervisable */,
110 int /* E Type de dependance ou de lecture */
111 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
112 float * /* E/S Borne inf de l'intervalle de lecture */
113 /* Retourne le pas lu dans le cas de */
114 /* lecture sequentielle */,
115 float * /* E Borne Sup de l'intervalle de lecture */,
116 int * /* E/S Pas d'iteration a lire */
117 /* Retourne le pas lu dans le cas de */
118 /* lecture sequentielle */,
119 char * /* E Nom de la variable a lire */,
120 int /* E Nombre max de valeurs a lire */,
121 int * /* S Nombre de valeurs rellement lues */,
122 float * /* S Tableau de flottants pour stocker les */
130 void * component /* Pointeur de type Superv_Component_i* sur le */
131 /* composant SALOME Supervisable */,
132 int /* E Type de dependance ou de lecture */
133 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
134 double* /* E/S Borne inf de l'intervalle de lecture */
135 /* Retourne le pas lu dans le cas de */
136 /* lecture sequentielle */,
137 double* /* E Borne Sup de l'intervalle de lecture */,
138 int * /* E/S Pas d'iteration a lire */
139 /* Retourne le pas lu dans le cas de */
140 /* lecture sequentielle */,
141 char * /* E Nom de la variable a lire */,
142 int /* E Nombre max de valeurs a lire */,
143 int * /* S Nombre de valeurs rellement lues */,
144 double* /* S Tableau de doubles pour stocker les */
152 void * component /* Pointeur de type Superv_Component_i* sur le */
153 /* composant SALOME Supervisable */,
154 int /* E Type de dependance ou de lecture */
155 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
156 float * /* E/S Borne inf de l'intervalle de lecture */
157 /* Retourne le pas lu dans le cas de */
158 /* lecture sequentielle */,
159 float * /* E Borne Sup de l'intervalle de lecture */,
160 int * /* E/S Pas d'iteration lire */
161 /* Retourne le pas lu dans le cas de */
162 /* lecture sequentielle */,
163 char * /* E Nom de la variable a lire */,
164 int /* E Nombre max de valeurs a lire */,
165 int * /* S Nombre de valeurs rellement lues */,
166 float * /* S Tableau de flottants pour stocker les */
167 /* valeurs lues (dimension = 2 * le nombre */
168 /* de valeurs lues) */
175 void * component /* Pointeur de type Superv_Component_i* sur le */
176 /* composant SALOME Supervisable */,
177 int /* E Type de dependance ou de lecture */
178 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
179 float * /* E/S Borne inf de l'intervalle de lecture */
180 /* Retourne le pas lu dans le cas de */
181 /* lecture sequentielle */,
182 float * /* E Borne Sup de l'intervalle de lecture */,
183 int * /* E/S Pas d'iteration a lire */
184 /* Retourne le pas lu dans le cas de */
185 /* lecture sequentielle */,
186 char * /* E Nom de la variable a lire */,
187 int /* E Nombre max de valeurs a lire */,
188 int * /* S Nombre de valeurs rellement lues */,
189 int * /* S Tableau d 'entier pour stocker les */
190 /* valeurs lues (remplace le logiques) */
197 void * component /* Pointeur de type Superv_Component_i* sur le */
198 /* composant SALOME Supervisable */,
199 int /* E Type de dependance ou de lecture */
200 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
201 float * /* E/S Borne inf de l'intervalle de lecture */
202 /* Retourne le pas lu dans le cas de */
203 /* lecture sequentielle */,
204 float * /* E Borne Sup de l'intervalle de lecture */,
205 int * /* E/S Pas d'iteration a lire */
206 /* Retourne le pas lu dans le cas de */
207 /* lecture sequentielle */,
208 char * /* E Nom de la variable a lire */,
209 int /* E Nombre max de valeurs a lire */,
210 int * /* S Nombre de valeurs rellement lues */,
211 char *[]/* S Tableau de chaines pour stocker les */
212 /* valeurs lues (remplace le logiques) */,
213 int /* E Taille des chaines du tablaeu */
221 /* Fonctions de lecture non bloquantes */
227 void * component /* Pointeur de type Superv_Component_i* sur le */
228 /* composant SALOME Supervisable */,
229 int /* E Type de dependance ou de lecture */
230 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
231 float * /* E/S Borne inf de l'intervalle de lecture */
232 /* Retourne le pas lu dans le cas de */
233 /* lecture sequentielle */,
234 float * /* E Borne Sup de l'intervalle de lecture */,
235 int * /* E/S Pas d'iteration a lire */
236 /* Retourne le pas lu dans le cas de */
237 /* lecture sequentielle */,
238 char * /* E Nom de la variable a lire */,
239 int /* E Nombre max de valeurs a lire */,
240 int * /* S Nombre de valeurs rellement lues */,
241 int * /* S Tableau d'entiers pour stocker les */
249 void * component /* Pointeur de type Superv_Component_i* sur le */
250 /* composant SALOME Supervisable */,
251 int /* E Type de dependance ou de lecture */
252 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
253 float * /* E/S Borne inf de l'intervalle de lecture */
254 /* Retourne le pas lu dans le cas de */
255 /* lecture sequentielle */,
256 float * /* E Borne Sup de l'intervalle de lecture */,
257 int * /* E/S Pas d'iteration a lire */
258 /* Retourne le pas lu dans le cas de */
259 /* lecture sequentielle */,
260 char * /* E Nom de la variable a lire */,
261 int /* E Nombre max de valeurs a lire */,
262 int * /* S Nombre de valeurs rellement lues */,
263 float * /* S Tableau de flottants pour stocker les */
272 void * component /* Pointeur de type Superv_Component_i* sur le */
273 /* composant SALOME Supervisable */,
274 int /* E Type de dependance ou de lecture */
275 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
276 double */* E/S Borne inf de l'intervalle de lecture */
277 /* Retourne le pas lu dans le cas de */
278 /* lecture sequentielle */,
279 double */* E Borne Sup de l'intervalle de lecture */,
280 int * /* E/S Pas d'iteration a lire */
281 /* Retourne le pas lu dans le cas de */
282 /* lecture sequentielle */,
283 char * /* E Nom de la variable a lire */,
284 int /* E Nombre max de valeurs a lire */,
285 int * /* S Nombre de valeurs rellement lues */,
286 double* /* S Tableau de doubles pour stocker les */
294 void * component /* Pointeur de type Superv_Component_i* sur le */
295 /* composant SALOME Supervisable */,
296 int /* E Type de dependance ou de lecture */
297 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
298 float * /* E/S Borne inf de l'intervalle de lecture */
299 /* Retourne le pas lu dans le cas de */
300 /* lecture sequentielle */,
301 float * /* E Borne Sup de l'intervalle de lecture */,
302 int * /* E/S Pas d'iteration lire */
303 /* Retourne le pas lu dans le cas de */
304 /* lecture sequentielle */,
305 char * /* E Nom de la variable a lire */,
306 int /* E Nombre max de valeurs a lire */,
307 int * /* S Nombre de valeurs rellement lues */,
308 float * /* S Tableau de flottants pour stocker les */
309 /* valeurs lues (dimension = 2 * le nombre */
310 /* de valeurs lues) */
317 void * component /* Pointeur de type Superv_Component_i* sur le */
318 /* composant SALOME Supervisable */,
319 int /* E Type de dependance ou de lecture */
320 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
321 float * /* E/S Borne inf de l'intervalle de lecture */
322 /* Retourne le pas lu dans le cas de */
323 /* lecture sequentielle */,
324 float * /* E Borne Sup de l'intervalle de lecture */,
325 int * /* E/S Pas d'iteration a lire */
326 /* Retourne le pas lu dans le cas de */
327 /* lecture sequentielle */,
328 char * /* E Nom de la variable a lire */,
329 int /* E Nombre max de valeurs a lire */,
330 int * /* S Nombre de valeurs rellement lues */,
331 int * /* S Tableau d 'entier pour stocker les */
332 /* valeurs lues (remplace le logiques) */
339 void * component /* Pointeur de type Superv_Component_i* sur le */
340 /* composant SALOME Supervisable */,
341 int /* E Type de dependance ou de lecture */
342 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
343 float * /* E/S Borne inf de l'intervalle de lecture */
344 /* Retourne le pas lu dans le cas de */
345 /* lecture sequentielle */,
346 float * /* E Borne Sup de l'intervalle de lecture */,
347 int * /* E/S Pas d'iteration a lire */
348 /* Retourne le pas lu dans le cas de */
349 /* lecture sequentielle */,
350 char * /* E Nom de la variable a lire */,
351 int /* E Nombre max de valeurs a lire */,
352 int * /* S Nombre de valeurs rellement lues */,
353 char *[]/* S Tableau de chaines pour stocker les */
354 /* valeurs lues (remplace le logiques) */,
355 int /* E Taille des chaines du tablaeu */
364 /* Fonctions d'ecriture */
371 void * component /* Pointeur de type Superv_Component_i* sur le */
372 /* composant SALOME Supervisable */,
373 int /* E Type de dependance */
374 /* CP_TEMPS, CP_ITERATION */,
375 float /* E Pas de temps a ecrire */,
376 int /* E Pas d'iteration a ecrire */,
377 char * /* E Nom de la variable a ecrire */,
378 int /* E Nombre de valeurs a ecrire */,
379 int * /* E Tableau d'entiers a ecrire */
386 void * component /* Pointeur de type Superv_Component_i* sur le */
387 /* composant SALOME Supervisable */,
388 int /* E Type de dependance */
389 /* CP_TEMPS, CP_ITERATION */,
390 float /* E Pas de temps a ecrire */,
391 int /* E Pas d'iteration a ecrire */,
392 char * /* E Nom de la variable a ecrire */,
393 int /* E Nombre de valeurs a ecrire */,
394 float * /* E Tableau de flottants a ecrire */
401 void * component /* Pointeur de type Superv_Component_i* sur le */
402 /* composant SALOME Supervisable */,
403 int /* E Type de dependance */
404 /* CP_TEMPS, CP_ITERATION */,
405 double /* E Pas de temps a ecrire */,
406 int /* E Pas d'iteration a ecrire */,
407 char * /* E Nom de la variable a ecrire */,
408 int /* E Nombre de valeurs a ecrire */,
409 double* /* E Tableau de doubles a ecrire */
416 void * component /* Pointeur de type Superv_Component_i* sur le */
417 /* composant SALOME Supervisable */,
418 int /* E Type de dependance */
419 /* CP_TEMPS, CP_ITERATION */,
420 float /* E Pas de temps a ecrire */,
421 int /* E Pas d'iteration a ecrire */,
422 char * /* E Nom de la variable a ecrire */,
423 int /* E Nombre de valeurs a ecrire */,
424 float * /* E Tableau de flottants a ecrire */
425 /* (dimension = 2 * le nombre de valeurs */
433 void * component /* Pointeur de type Superv_Component_i* sur le */
434 /* composant SALOME Supervisable */,
435 int /* E Type de dependance */
436 /* CP_TEMPS, CP_ITERATION */,
437 float /* E Pas de temps a ecrire */,
438 int /* E Pas d'iteration a ecrire */,
439 char * /* E Nom de la variable a ecrire */,
440 int /* E Nombre de valeurs a ecrire */,
441 int * /* E Tableau d'entiers a ecrire */
448 void * component /* Pointeur de type Superv_Component_i* sur le */
449 /* composant SALOME Supervisable */,
450 int /* E Type de dependance */
451 /* CP_TEMPS, CP_ITERATION */,
452 float /* E Pas de temps a ecrire */,
453 int /* E Pas d'iteration a ecrire */,
454 char * /* E Nom de la variable a ecrire */,
455 int /* E Nombre de valeurs a ecrire */,
456 char *[]/* E Tableau de chaines a ecrire */,
457 int /* E Taille des chaines a ecrire */
466 /* Fonctions de fin de pas */
472 void * component /* Pointeur de type Superv_Component_i* sur le */
473 /* composant SALOME Supervisable */
480 void * component /* Pointeur de type Superv_Component_i* sur le */
481 /* composant SALOME Supervisable */
488 void * component /* Pointeur de type Superv_Component_i* sur le */
489 /* composant SALOME Supervisable */,
490 int /* E Tous les pas <= a cette valeur */
491 /* seront oublies par le coupleur */
498 void * component /* Pointeur de type Superv_Component_i* sur le */
499 /* composant SALOME Supervisable */,
500 float /* E Tous les pas <= a cette valeur */
501 /* seront oublies par le coupleur */
509 /* Fonctions d'effacement */
515 void * component /* Pointeur de type Superv_Component_i* sur le */
516 /* composant SALOME Supervisable */,
517 char * /* E Nom de la variable a effacer */,
518 int /* E Tous les pas >= a cette valeurt */
519 /* seront effaces par le coupleur */
527 void * component /* Pointeur de type Superv_Component_i* sur le */
528 /* composant SALOME Supervisable */,
529 char * /* E Nom de la variable a effacer */,
530 float /* E Tous les pas >= a cette valeur */
531 /* seront effaces par le coupleur */
539 /* Fonctions de mode d'execution */
545 void * component /* Pointeur de type Superv_Component_i* sur le */
546 /* composant SALOME Supervisable */
553 void * component /* Pointeur de type Superv_Component_i* sur le */
554 /* composant SALOME Supervisable */
561 void * component /* Pointeur de type Superv_Component_i* sur le */
562 /* composant SALOME Supervisable */,
563 int /* E Nombre de pas a executer */
571 /* Fonctions de configuration dynamique */
574 extern int cp_dfcode(
577 void * component /* Pointeur de type Superv_Component_i* sur le */
578 /* composant SALOME Supervisable */,
579 char * /* E Declaration du code */
583 extern int cp_dfinst(
586 void * component /* Pointeur de type Superv_Component_i* sur le */
587 /* composant SALOME Supervisable */,
588 char * /* E Declaration de l'instance */
592 extern int cp_dflien(
595 void * component /* Pointeur de type Superv_Component_i* sur le */
596 /* composant SALOME Supervisable */,
597 char * /* E Declaration du lien */
605 /* Fonctions d'interrogation */
611 void * component /* Pointeur de type Superv_Component_i* sur le */
612 /* composant SALOME Supervisable */,
613 char * /* S Repertoire ACCC */,
614 char * /* S Repertoire ACCC */
622 void * component /* Pointeur de type Superv_Component_i* sur le */
623 /* composant SALOME Supervisable */,
624 int /* E Longueur du tableau passe en parametre */,
625 int * /* S Nombre de codes retournes */,
626 char *[]/* S Tableau contenant les noms des codes */
633 void * component /* Pointeur de type Superv_Component_i* sur le */
634 /* composant SALOME Supervisable */,
635 char * /* E Nom du code dont on veut les instances */,
636 int /* E Longueur du tableau passe en parametre */,
637 int * /* S Nombre d'instances retournees */,
638 char *[]/* S Tableau contenant les noms des instances */
645 void * component /* Pointeur de type Superv_Component_i* sur le */
646 /* composant SALOME Supervisable */,
647 int /* E Longueur des tableaux passes en parametre */,
648 int * /* S Nombre de variables retournees */,
649 char *[]/* S Tableau contenant les noms des instances */,
650 char *[]/* S Tableau contenant les noms des variables */
657 void * component /* Pointeur de type Superv_Component_i* sur le */
658 /* composant SALOME Supervisable */,
659 char * /* E Nom du code dont on veut les variables */,
660 int /* E Longueur des tableaux passes en parametre */,
661 int * /* S Nombre de variables retournees */,
662 char *[]/* S Tableau contenant les noms des variables */
669 void * component /* Pointeur de type Superv_Component_i* sur le */
670 /* composant SALOME Supervisable */,
671 char * /* E Nom de l'instance dont on veut la liste */
673 char * /* S Nom du code pere de l'instance */,
674 int /* E Longueur du tableau pour les variables */
676 int /* E Longueur du tableau pour les variables */
678 int * /* S Nombre de variables entrantes retournees */,
679 int * /* S Nombre de variables sortantes retournees */,
680 char *[]/* S Tableau contenant les noms des variables */
682 char *[]/* S Tableau contenant les noms des variables */
690 void * component /* Pointeur de type Superv_Component_i* sur le */
691 /* composant SALOME Supervisable */,
692 char * /* E Nom de l'instance contenant la variable */,
693 char * /* E Nom local de la variable */,
694 int * /* S Sens de la variable */,
695 int * /* S Dependance de la variable */,
696 int * /* S Type de la variable */,
697 int /* E Longueur des tableaux permettant de */
698 /* recueillir les pas de temps et d'iteration*/,
699 int * /* S Nombre de codes retournes */,
700 float * /* S Tableau contenant les pas de temps */,
701 int * /* S Tableau contenant les pas d'iterations */
708 void * component /* Pointeur de type Superv_Component_i* sur le */
709 /* composant SALOME Supervisable */,
710 char * /* E Nom global de la variable */,
711 int /* E Longueur des tableaux pour les noms des */
712 /* instances et des variables */,
713 int * /* S Nombre de variables participant au lien */,
714 char *[]/* S Tableau contenant les noms des instances */,
715 char *[]/* S Tableau contenant les noms des variables */,
716 int * /* S Type du lien */,
717 int * /* S Niveau du lien */,
718 int * /* S Tableau des parametres d'interpolation */
719 /* des variables entrantes */,
720 float * /* S Tableau des valeurs de delta utilisees */
721 /* pour les variables entrantes */,
722 int * /* S Tableau des parametres d'extrapolation */
723 /* des variables entrantes */
731 /* Fonctions de manipulation d'options */
734 extern int cp_setopt(
737 void * component /* Pointeur de type Superv_Component_i* sur le */
738 /* composant SALOME Supervisable */,
739 int /* E Numero identifiant l'option a modifier */,
740 int /* E Valeur a donner a l'option */
744 extern int cp_getopt(
747 void * component /* Pointeur de type Superv_Component_i* sur le */
748 /* composant SALOME Supervisable */,
749 int /* E Numero identifiant l'option a consulter */,
750 int * /* S Valeur recupereee de l'option */
756 #if defined(__cplusplus) || defined(c_plusplus)