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$ */
36 #if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
37 #define CPNeedPrototype 1
39 #define CPNeedPrototype 0
43 #if defined(__cplusplus) || defined(c_plusplus)
49 /* Fonctions de connexion */
55 void * component /* Pointeur de type Superv_Component_i* sur le */
56 /* composant SALOME Supervisable */,
57 char * /* S Nom de l instance appelante*/
64 /* Fonction de deconnexion */
70 void * component /* Pointeur de type Superv_Component_i* sur le */
71 /* composant SALOME Supervisable */,
72 int /* E Directive de continuation */
73 /* CP_CONT ou CP_ARRET */
81 /* Fonctions de lecture bloquante */
87 void * component /* Pointeur de type Superv_Component_i* sur le */
88 /* composant SALOME Supervisable */,
89 int /* E Type de dependance ou de lecture */
90 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
91 float * /* E/S Borne inf de l'intervalle de lecture */
92 /* Retourne le pas lu dans le cas de */
93 /* lecture sequentielle */,
94 float * /* E Borne Sup de l'intervalle de lecture */,
95 int * /* E/S Pas d'iteration a lire */
96 /* Retourne le pas lu dans le cas de */
97 /* lecture sequentielle */,
98 char * /* E Nom de la variable a lire */,
99 int /* E Nombre max de valeurs a lire */,
100 int * /* S Nombre de valeurs rellement lues */,
101 int * /* S Tableau d'entiers pour stocker les */
109 void * component /* Pointeur de type Superv_Component_i* sur le */
110 /* composant SALOME Supervisable */,
111 int /* E Type de dependance ou de lecture */
112 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
113 float * /* E/S Borne inf de l'intervalle de lecture */
114 /* Retourne le pas lu dans le cas de */
115 /* lecture sequentielle */,
116 float * /* E Borne Sup de l'intervalle de lecture */,
117 int * /* E/S Pas d'iteration a lire */
118 /* Retourne le pas lu dans le cas de */
119 /* lecture sequentielle */,
120 char * /* E Nom de la variable a lire */,
121 int /* E Nombre max de valeurs a lire */,
122 int * /* S Nombre de valeurs rellement lues */,
123 float * /* S Tableau de flottants pour stocker les */
131 void * component /* Pointeur de type Superv_Component_i* sur le */
132 /* composant SALOME Supervisable */,
133 int /* E Type de dependance ou de lecture */
134 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
135 double* /* E/S Borne inf de l'intervalle de lecture */
136 /* Retourne le pas lu dans le cas de */
137 /* lecture sequentielle */,
138 double* /* E Borne Sup de l'intervalle de lecture */,
139 int * /* E/S Pas d'iteration a lire */
140 /* Retourne le pas lu dans le cas de */
141 /* lecture sequentielle */,
142 char * /* E Nom de la variable a lire */,
143 int /* E Nombre max de valeurs a lire */,
144 int * /* S Nombre de valeurs rellement lues */,
145 double* /* S Tableau de doubles pour stocker les */
153 void * component /* Pointeur de type Superv_Component_i* sur le */
154 /* composant SALOME Supervisable */,
155 int /* E Type de dependance ou de lecture */
156 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
157 float * /* E/S Borne inf de l'intervalle de lecture */
158 /* Retourne le pas lu dans le cas de */
159 /* lecture sequentielle */,
160 float * /* E Borne Sup de l'intervalle de lecture */,
161 int * /* E/S Pas d'iteration lire */
162 /* Retourne le pas lu dans le cas de */
163 /* lecture sequentielle */,
164 char * /* E Nom de la variable a lire */,
165 int /* E Nombre max de valeurs a lire */,
166 int * /* S Nombre de valeurs rellement lues */,
167 float * /* S Tableau de flottants pour stocker les */
168 /* valeurs lues (dimension = 2 * le nombre */
169 /* de valeurs lues) */
176 void * component /* Pointeur de type Superv_Component_i* sur le */
177 /* composant SALOME Supervisable */,
178 int /* E Type de dependance ou de lecture */
179 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
180 float * /* E/S Borne inf de l'intervalle de lecture */
181 /* Retourne le pas lu dans le cas de */
182 /* lecture sequentielle */,
183 float * /* E Borne Sup de l'intervalle de lecture */,
184 int * /* E/S Pas d'iteration a lire */
185 /* Retourne le pas lu dans le cas de */
186 /* lecture sequentielle */,
187 char * /* E Nom de la variable a lire */,
188 int /* E Nombre max de valeurs a lire */,
189 int * /* S Nombre de valeurs rellement lues */,
190 int * /* S Tableau d 'entier pour stocker les */
191 /* valeurs lues (remplace le logiques) */
198 void * component /* Pointeur de type Superv_Component_i* sur le */
199 /* composant SALOME Supervisable */,
200 int /* E Type de dependance ou de lecture */
201 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
202 float * /* E/S Borne inf de l'intervalle de lecture */
203 /* Retourne le pas lu dans le cas de */
204 /* lecture sequentielle */,
205 float * /* E Borne Sup de l'intervalle de lecture */,
206 int * /* E/S Pas d'iteration a lire */
207 /* Retourne le pas lu dans le cas de */
208 /* lecture sequentielle */,
209 char * /* E Nom de la variable a lire */,
210 int /* E Nombre max de valeurs a lire */,
211 int * /* S Nombre de valeurs rellement lues */,
212 char *[]/* S Tableau de chaines pour stocker les */
213 /* valeurs lues (remplace le logiques) */,
214 int /* E Taille des chaines du tablaeu */
222 /* Fonctions de lecture non bloquantes */
228 void * component /* Pointeur de type Superv_Component_i* sur le */
229 /* composant SALOME Supervisable */,
230 int /* E Type de dependance ou de lecture */
231 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
232 float * /* E/S Borne inf de l'intervalle de lecture */
233 /* Retourne le pas lu dans le cas de */
234 /* lecture sequentielle */,
235 float * /* E Borne Sup de l'intervalle de lecture */,
236 int * /* E/S Pas d'iteration a lire */
237 /* Retourne le pas lu dans le cas de */
238 /* lecture sequentielle */,
239 char * /* E Nom de la variable a lire */,
240 int /* E Nombre max de valeurs a lire */,
241 int * /* S Nombre de valeurs rellement lues */,
242 int * /* S Tableau d'entiers pour stocker les */
250 void * component /* Pointeur de type Superv_Component_i* sur le */
251 /* composant SALOME Supervisable */,
252 int /* E Type de dependance ou de lecture */
253 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
254 float * /* E/S Borne inf de l'intervalle de lecture */
255 /* Retourne le pas lu dans le cas de */
256 /* lecture sequentielle */,
257 float * /* E Borne Sup de l'intervalle de lecture */,
258 int * /* E/S Pas d'iteration a lire */
259 /* Retourne le pas lu dans le cas de */
260 /* lecture sequentielle */,
261 char * /* E Nom de la variable a lire */,
262 int /* E Nombre max de valeurs a lire */,
263 int * /* S Nombre de valeurs rellement lues */,
264 float * /* S Tableau de flottants pour stocker les */
273 void * component /* Pointeur de type Superv_Component_i* sur le */
274 /* composant SALOME Supervisable */,
275 int /* E Type de dependance ou de lecture */
276 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
277 double */* E/S Borne inf de l'intervalle de lecture */
278 /* Retourne le pas lu dans le cas de */
279 /* lecture sequentielle */,
280 double */* E Borne Sup de l'intervalle de lecture */,
281 int * /* E/S Pas d'iteration a lire */
282 /* Retourne le pas lu dans le cas de */
283 /* lecture sequentielle */,
284 char * /* E Nom de la variable a lire */,
285 int /* E Nombre max de valeurs a lire */,
286 int * /* S Nombre de valeurs rellement lues */,
287 double* /* S Tableau de doubles pour stocker les */
295 void * component /* Pointeur de type Superv_Component_i* sur le */
296 /* composant SALOME Supervisable */,
297 int /* E Type de dependance ou de lecture */
298 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
299 float * /* E/S Borne inf de l'intervalle de lecture */
300 /* Retourne le pas lu dans le cas de */
301 /* lecture sequentielle */,
302 float * /* E Borne Sup de l'intervalle de lecture */,
303 int * /* E/S Pas d'iteration lire */
304 /* Retourne le pas lu dans le cas de */
305 /* lecture sequentielle */,
306 char * /* E Nom de la variable a lire */,
307 int /* E Nombre max de valeurs a lire */,
308 int * /* S Nombre de valeurs rellement lues */,
309 float * /* S Tableau de flottants pour stocker les */
310 /* valeurs lues (dimension = 2 * le nombre */
311 /* de valeurs lues) */
318 void * component /* Pointeur de type Superv_Component_i* sur le */
319 /* composant SALOME Supervisable */,
320 int /* E Type de dependance ou de lecture */
321 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
322 float * /* E/S Borne inf de l'intervalle de lecture */
323 /* Retourne le pas lu dans le cas de */
324 /* lecture sequentielle */,
325 float * /* E Borne Sup de l'intervalle de lecture */,
326 int * /* E/S Pas d'iteration a lire */
327 /* Retourne le pas lu dans le cas de */
328 /* lecture sequentielle */,
329 char * /* E Nom de la variable a lire */,
330 int /* E Nombre max de valeurs a lire */,
331 int * /* S Nombre de valeurs rellement lues */,
332 int * /* S Tableau d 'entier pour stocker les */
333 /* valeurs lues (remplace le logiques) */
340 void * component /* Pointeur de type Superv_Component_i* sur le */
341 /* composant SALOME Supervisable */,
342 int /* E Type de dependance ou de lecture */
343 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
344 float * /* E/S Borne inf de l'intervalle de lecture */
345 /* Retourne le pas lu dans le cas de */
346 /* lecture sequentielle */,
347 float * /* E Borne Sup de l'intervalle de lecture */,
348 int * /* E/S Pas d'iteration a lire */
349 /* Retourne le pas lu dans le cas de */
350 /* lecture sequentielle */,
351 char * /* E Nom de la variable a lire */,
352 int /* E Nombre max de valeurs a lire */,
353 int * /* S Nombre de valeurs rellement lues */,
354 char *[]/* S Tableau de chaines pour stocker les */
355 /* valeurs lues (remplace le logiques) */,
356 int /* E Taille des chaines du tablaeu */
365 /* Fonctions d'ecriture */
372 void * component /* Pointeur de type Superv_Component_i* sur le */
373 /* composant SALOME Supervisable */,
374 int /* E Type de dependance */
375 /* CP_TEMPS, CP_ITERATION */,
376 float /* E Pas de temps a ecrire */,
377 int /* E Pas d'iteration a ecrire */,
378 char * /* E Nom de la variable a ecrire */,
379 int /* E Nombre de valeurs a ecrire */,
380 int * /* E Tableau d'entiers a ecrire */
387 void * component /* Pointeur de type Superv_Component_i* sur le */
388 /* composant SALOME Supervisable */,
389 int /* E Type de dependance */
390 /* CP_TEMPS, CP_ITERATION */,
391 float /* E Pas de temps a ecrire */,
392 int /* E Pas d'iteration a ecrire */,
393 char * /* E Nom de la variable a ecrire */,
394 int /* E Nombre de valeurs a ecrire */,
395 float * /* E Tableau de flottants a ecrire */
402 void * component /* Pointeur de type Superv_Component_i* sur le */
403 /* composant SALOME Supervisable */,
404 int /* E Type de dependance */
405 /* CP_TEMPS, CP_ITERATION */,
406 double /* E Pas de temps a ecrire */,
407 int /* E Pas d'iteration a ecrire */,
408 char * /* E Nom de la variable a ecrire */,
409 int /* E Nombre de valeurs a ecrire */,
410 double* /* E Tableau de doubles a ecrire */
417 void * component /* Pointeur de type Superv_Component_i* sur le */
418 /* composant SALOME Supervisable */,
419 int /* E Type de dependance */
420 /* CP_TEMPS, CP_ITERATION */,
421 float /* E Pas de temps a ecrire */,
422 int /* E Pas d'iteration a ecrire */,
423 char * /* E Nom de la variable a ecrire */,
424 int /* E Nombre de valeurs a ecrire */,
425 float * /* E Tableau de flottants a ecrire */
426 /* (dimension = 2 * le nombre de valeurs */
434 void * component /* Pointeur de type Superv_Component_i* sur le */
435 /* composant SALOME Supervisable */,
436 int /* E Type de dependance */
437 /* CP_TEMPS, CP_ITERATION */,
438 float /* E Pas de temps a ecrire */,
439 int /* E Pas d'iteration a ecrire */,
440 char * /* E Nom de la variable a ecrire */,
441 int /* E Nombre de valeurs a ecrire */,
442 int * /* E Tableau d'entiers a ecrire */
449 void * component /* Pointeur de type Superv_Component_i* sur le */
450 /* composant SALOME Supervisable */,
451 int /* E Type de dependance */
452 /* CP_TEMPS, CP_ITERATION */,
453 float /* E Pas de temps a ecrire */,
454 int /* E Pas d'iteration a ecrire */,
455 char * /* E Nom de la variable a ecrire */,
456 int /* E Nombre de valeurs a ecrire */,
457 char *[]/* E Tableau de chaines a ecrire */,
458 int /* E Taille des chaines a ecrire */
467 /* Fonctions de fin de pas */
473 void * component /* Pointeur de type Superv_Component_i* sur le */
474 /* composant SALOME Supervisable */
481 void * component /* Pointeur de type Superv_Component_i* sur le */
482 /* composant SALOME Supervisable */
489 void * component /* Pointeur de type Superv_Component_i* sur le */
490 /* composant SALOME Supervisable */,
491 int /* E Tous les pas <= a cette valeur */
492 /* seront oublies par le coupleur */
499 void * component /* Pointeur de type Superv_Component_i* sur le */
500 /* composant SALOME Supervisable */,
501 float /* E Tous les pas <= a cette valeur */
502 /* seront oublies par le coupleur */
510 /* Fonctions d'effacement */
516 void * component /* Pointeur de type Superv_Component_i* sur le */
517 /* composant SALOME Supervisable */,
518 char * /* E Nom de la variable a effacer */,
519 int /* E Tous les pas >= a cette valeurt */
520 /* seront effaces par le coupleur */
528 void * component /* Pointeur de type Superv_Component_i* sur le */
529 /* composant SALOME Supervisable */,
530 char * /* E Nom de la variable a effacer */,
531 float /* E Tous les pas >= a cette valeur */
532 /* seront effaces par le coupleur */
540 /* Fonctions de mode d'execution */
546 void * component /* Pointeur de type Superv_Component_i* sur le */
547 /* composant SALOME Supervisable */
554 void * component /* Pointeur de type Superv_Component_i* sur le */
555 /* composant SALOME Supervisable */
562 void * component /* Pointeur de type Superv_Component_i* sur le */
563 /* composant SALOME Supervisable */,
564 int /* E Nombre de pas a executer */
572 /* Fonctions de configuration dynamique */
575 extern int cp_dfcode(
578 void * component /* Pointeur de type Superv_Component_i* sur le */
579 /* composant SALOME Supervisable */,
580 char * /* E Declaration du code */
584 extern int cp_dfinst(
587 void * component /* Pointeur de type Superv_Component_i* sur le */
588 /* composant SALOME Supervisable */,
589 char * /* E Declaration de l'instance */
593 extern int cp_dflien(
596 void * component /* Pointeur de type Superv_Component_i* sur le */
597 /* composant SALOME Supervisable */,
598 char * /* E Declaration du lien */
606 /* Fonctions d'interrogation */
612 void * component /* Pointeur de type Superv_Component_i* sur le */
613 /* composant SALOME Supervisable */,
614 char * /* S Repertoire ACCC */,
615 char * /* S Repertoire ACCC */
623 void * component /* Pointeur de type Superv_Component_i* sur le */
624 /* composant SALOME Supervisable */,
625 int /* E Longueur du tableau passe en parametre */,
626 int * /* S Nombre de codes retournes */,
627 char *[]/* S Tableau contenant les noms des codes */
634 void * component /* Pointeur de type Superv_Component_i* sur le */
635 /* composant SALOME Supervisable */,
636 char * /* E Nom du code dont on veut les instances */,
637 int /* E Longueur du tableau passe en parametre */,
638 int * /* S Nombre d'instances retournees */,
639 char *[]/* S Tableau contenant les noms des instances */
646 void * component /* Pointeur de type Superv_Component_i* sur le */
647 /* composant SALOME Supervisable */,
648 int /* E Longueur des tableaux passes en parametre */,
649 int * /* S Nombre de variables retournees */,
650 char *[]/* S Tableau contenant les noms des instances */,
651 char *[]/* S Tableau contenant les noms des variables */
658 void * component /* Pointeur de type Superv_Component_i* sur le */
659 /* composant SALOME Supervisable */,
660 char * /* E Nom du code dont on veut les variables */,
661 int /* E Longueur des tableaux passes en parametre */,
662 int * /* S Nombre de variables retournees */,
663 char *[]/* S Tableau contenant les noms des variables */
670 void * component /* Pointeur de type Superv_Component_i* sur le */
671 /* composant SALOME Supervisable */,
672 char * /* E Nom de l'instance dont on veut la liste */
674 char * /* S Nom du code pere de l'instance */,
675 int /* E Longueur du tableau pour les variables */
677 int /* E Longueur du tableau pour les variables */
679 int * /* S Nombre de variables entrantes retournees */,
680 int * /* S Nombre de variables sortantes retournees */,
681 char *[]/* S Tableau contenant les noms des variables */
683 char *[]/* S Tableau contenant les noms des variables */
691 void * component /* Pointeur de type Superv_Component_i* sur le */
692 /* composant SALOME Supervisable */,
693 char * /* E Nom de l'instance contenant la variable */,
694 char * /* E Nom local de la variable */,
695 int * /* S Sens de la variable */,
696 int * /* S Dependance de la variable */,
697 int * /* S Type de la variable */,
698 int /* E Longueur des tableaux permettant de */
699 /* recueillir les pas de temps et d'iteration*/,
700 int * /* S Nombre de codes retournes */,
701 float * /* S Tableau contenant les pas de temps */,
702 int * /* S Tableau contenant les pas d'iterations */
709 void * component /* Pointeur de type Superv_Component_i* sur le */
710 /* composant SALOME Supervisable */,
711 char * /* E Nom global de la variable */,
712 int /* E Longueur des tableaux pour les noms des */
713 /* instances et des variables */,
714 int * /* S Nombre de variables participant au lien */,
715 char *[]/* S Tableau contenant les noms des instances */,
716 char *[]/* S Tableau contenant les noms des variables */,
717 int * /* S Type du lien */,
718 int * /* S Niveau du lien */,
719 int * /* S Tableau des parametres d'interpolation */
720 /* des variables entrantes */,
721 float * /* S Tableau des valeurs de delta utilisees */
722 /* pour les variables entrantes */,
723 int * /* S Tableau des parametres d'extrapolation */
724 /* des variables entrantes */
732 /* Fonctions de manipulation d'options */
735 extern int cp_setopt(
738 void * component /* Pointeur de type Superv_Component_i* sur le */
739 /* composant SALOME Supervisable */,
740 int /* E Numero identifiant l'option a modifier */,
741 int /* E Valeur a donner a l'option */
745 extern int cp_getopt(
748 void * component /* Pointeur de type Superv_Component_i* sur le */
749 /* composant SALOME Supervisable */,
750 int /* E Numero identifiant l'option a consulter */,
751 int * /* S Valeur recupereee de l'option */
757 #if defined(__cplusplus) || defined(c_plusplus)