1 // Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
24 // 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 long * /* S Tableau d'entiers 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 float * /* E/S Borne inf de l'intervalle de lecture */
136 /* Retourne le pas lu dans le cas de */
137 /* lecture sequentielle */,
138 float * /* 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 long * /* S Tableau d'entiers 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 a 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 */
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 double* /* E/S Borne inf de l'intervalle de lecture */
180 /* Retourne le pas lu dans le cas de */
181 /* lecture sequentielle */,
182 double* /* 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 double* /* S Tableau de doubles pour stocker les */
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 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 float * /* S Tableau de flottants pour stocker les */
212 /* valeurs lues (dimension = 2 * le nombre */
213 /* de valeurs lues) */
220 void * component /* Pointeur de type Superv_Component_i* sur le */
221 /* composant SALOME Supervisable */,
222 int /* E Type de dependance ou de lecture */
223 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
224 float * /* E/S Borne inf de l'intervalle de lecture */
225 /* Retourne le pas lu dans le cas de */
226 /* lecture sequentielle */,
227 float * /* E Borne Sup de l'intervalle de lecture */,
228 int * /* E/S Pas d'iteration a lire */
229 /* Retourne le pas lu dans le cas de */
230 /* lecture sequentielle */,
231 char * /* E Nom de la variable a lire */,
232 int /* E Nombre max de valeurs a lire */,
233 int * /* S Nombre de valeurs rellement lues */,
234 int * /* S Tableau d 'entier pour stocker les */
235 /* valeurs lues (remplace le logiques) */
242 void * component /* Pointeur de type Superv_Component_i* sur le */
243 /* composant SALOME Supervisable */,
244 int /* E Type de dependance ou de lecture */
245 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
246 float * /* E/S Borne inf de l'intervalle de lecture */
247 /* Retourne le pas lu dans le cas de */
248 /* lecture sequentielle */,
249 float * /* E Borne Sup de l'intervalle de lecture */,
250 int * /* E/S Pas d'iteration a lire */
251 /* Retourne le pas lu dans le cas de */
252 /* lecture sequentielle */,
253 char * /* E Nom de la variable a lire */,
254 int /* E Nombre max de valeurs a lire */,
255 int * /* S Nombre de valeurs rellement lues */,
256 char *[]/* S Tableau de chaines pour stocker les */
257 /* valeurs lues (remplace le logiques) */,
258 int /* E Taille des chaines du tablaeu */
266 /* Fonctions de lecture non bloquantes */
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 float * /* E/S Borne inf de l'intervalle de lecture */
277 /* Retourne le pas lu dans le cas de */
278 /* lecture sequentielle */,
279 float * /* 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 int * /* S Tableau d'entiers 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 a 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 */
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 double */* E/S Borne inf de l'intervalle de lecture */
322 /* Retourne le pas lu dans le cas de */
323 /* lecture sequentielle */,
324 double */* 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 double* /* S Tableau de doubles pour stocker les */
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 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 float * /* S Tableau de flottants pour stocker les */
354 /* valeurs lues (dimension = 2 * le nombre */
355 /* de valeurs lues) */
362 void * component /* Pointeur de type Superv_Component_i* sur le */
363 /* composant SALOME Supervisable */,
364 int /* E Type de dependance ou de lecture */
365 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
366 float * /* E/S Borne inf de l'intervalle de lecture */
367 /* Retourne le pas lu dans le cas de */
368 /* lecture sequentielle */,
369 float * /* E Borne Sup de l'intervalle de lecture */,
370 int * /* E/S Pas d'iteration a lire */
371 /* Retourne le pas lu dans le cas de */
372 /* lecture sequentielle */,
373 char * /* E Nom de la variable a lire */,
374 int /* E Nombre max de valeurs a lire */,
375 int * /* S Nombre de valeurs rellement lues */,
376 int * /* S Tableau d 'entier pour stocker les */
377 /* valeurs lues (remplace le logiques) */
384 void * component /* Pointeur de type Superv_Component_i* sur le */
385 /* composant SALOME Supervisable */,
386 int /* E Type de dependance ou de lecture */
387 /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */,
388 float * /* E/S Borne inf de l'intervalle de lecture */
389 /* Retourne le pas lu dans le cas de */
390 /* lecture sequentielle */,
391 float * /* E Borne Sup de l'intervalle de lecture */,
392 int * /* E/S Pas d'iteration a lire */
393 /* Retourne le pas lu dans le cas de */
394 /* lecture sequentielle */,
395 char * /* E Nom de la variable a lire */,
396 int /* E Nombre max de valeurs a lire */,
397 int * /* S Nombre de valeurs rellement lues */,
398 char *[]/* S Tableau de chaines pour stocker les */
399 /* valeurs lues (remplace le logiques) */,
400 int /* E Taille des chaines du tablaeu */
409 /* Fonctions d'ecriture */
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 int * /* E Tableau d'entiers a ecrire */
431 void * component /* Pointeur de type Superv_Component_i* sur le */
432 /* composant SALOME Supervisable */,
433 int /* E Type de dependance */
434 /* CP_TEMPS, CP_ITERATION */,
435 float /* E Pas de temps a ecrire */,
436 int /* E Pas d'iteration a ecrire */,
437 char * /* E Nom de la variable a ecrire */,
438 int /* E Nombre de valeurs a ecrire */,
439 long * /* E Tableau d'entiers a ecrire */
446 void * component /* Pointeur de type Superv_Component_i* sur le */
447 /* composant SALOME Supervisable */,
448 int /* E Type de dependance */
449 /* CP_TEMPS, CP_ITERATION */,
450 float /* E Pas de temps a ecrire */,
451 int /* E Pas d'iteration a ecrire */,
452 char * /* E Nom de la variable a ecrire */,
453 int /* E Nombre de valeurs a ecrire */,
454 long * /* E Tableau d'entiers a ecrire */
461 void * component /* Pointeur de type Superv_Component_i* sur le */
462 /* composant SALOME Supervisable */,
463 int /* E Type de dependance */
464 /* CP_TEMPS, CP_ITERATION */,
465 float /* E Pas de temps a ecrire */,
466 int /* E Pas d'iteration a ecrire */,
467 char * /* E Nom de la variable a ecrire */,
468 int /* E Nombre de valeurs a ecrire */,
469 float * /* E Tableau de flottants a ecrire */
476 void * component /* Pointeur de type Superv_Component_i* sur le */
477 /* composant SALOME Supervisable */,
478 int /* E Type de dependance */
479 /* CP_TEMPS, CP_ITERATION */,
480 double /* E Pas de temps a ecrire */,
481 int /* E Pas d'iteration a ecrire */,
482 char * /* E Nom de la variable a ecrire */,
483 int /* E Nombre de valeurs a ecrire */,
484 double* /* E Tableau de doubles a ecrire */
491 void * component /* Pointeur de type Superv_Component_i* sur le */
492 /* composant SALOME Supervisable */,
493 int /* E Type de dependance */
494 /* CP_TEMPS, CP_ITERATION */,
495 float /* E Pas de temps a ecrire */,
496 int /* E Pas d'iteration a ecrire */,
497 char * /* E Nom de la variable a ecrire */,
498 int /* E Nombre de valeurs a ecrire */,
499 float * /* E Tableau de flottants a ecrire */
500 /* (dimension = 2 * le nombre de valeurs */
508 void * component /* Pointeur de type Superv_Component_i* sur le */
509 /* composant SALOME Supervisable */,
510 int /* E Type de dependance */
511 /* CP_TEMPS, CP_ITERATION */,
512 float /* E Pas de temps a ecrire */,
513 int /* E Pas d'iteration a ecrire */,
514 char * /* E Nom de la variable a ecrire */,
515 int /* E Nombre de valeurs a ecrire */,
516 int * /* E Tableau d'entiers a ecrire */
523 void * component /* Pointeur de type Superv_Component_i* sur le */
524 /* composant SALOME Supervisable */,
525 int /* E Type de dependance */
526 /* CP_TEMPS, CP_ITERATION */,
527 float /* E Pas de temps a ecrire */,
528 int /* E Pas d'iteration a ecrire */,
529 char * /* E Nom de la variable a ecrire */,
530 int /* E Nombre de valeurs a ecrire */,
531 char *[]/* E Tableau de chaines a ecrire */,
532 int /* E Taille des chaines a ecrire */
541 /* Fonctions de fin de pas */
547 void * component /* Pointeur de type Superv_Component_i* sur le */
548 /* composant SALOME Supervisable */
555 void * component /* Pointeur de type Superv_Component_i* sur le */
556 /* composant SALOME Supervisable */
563 void * component /* Pointeur de type Superv_Component_i* sur le */
564 /* composant SALOME Supervisable */,
565 char * /* E Nom de la variable (not in original CALCIUM API) */,
566 int /* E Tous les pas <= a cette valeur */
567 /* seront oublies par le coupleur */
574 void * component /* Pointeur de type Superv_Component_i* sur le */
575 /* composant SALOME Supervisable */,
576 char * /* E Nom de la variable (not in original CALCIUM API) */,
577 float /* E Tous les pas <= a cette valeur */
578 /* seront oublies par le coupleur */
586 /* Fonctions d'effacement */
592 void * component /* Pointeur de type Superv_Component_i* sur le */
593 /* composant SALOME Supervisable */,
594 char * /* E Nom de la variable a effacer */,
595 int /* E Tous les pas >= a cette valeurt */
596 /* seront effaces par le coupleur */
604 void * component /* Pointeur de type Superv_Component_i* sur le */
605 /* composant SALOME Supervisable */,
606 char * /* E Nom de la variable a effacer */,
607 float /* E Tous les pas >= a cette valeur */
608 /* seront effaces par le coupleur */
616 /* Fonctions de mode d'execution */
622 void * component /* Pointeur de type Superv_Component_i* sur le */
623 /* composant SALOME Supervisable */
630 void * component /* Pointeur de type Superv_Component_i* sur le */
631 /* composant SALOME Supervisable */
638 void * component /* Pointeur de type Superv_Component_i* sur le */
639 /* composant SALOME Supervisable */,
640 int /* E Nombre de pas a executer */
648 /* Fonctions de configuration dynamique */
651 extern int cp_dfcode(
654 void * component /* Pointeur de type Superv_Component_i* sur le */
655 /* composant SALOME Supervisable */,
656 char * /* E Declaration du code */
660 extern int cp_dfinst(
663 void * component /* Pointeur de type Superv_Component_i* sur le */
664 /* composant SALOME Supervisable */,
665 char * /* E Declaration de l'instance */
669 extern int cp_dflien(
672 void * component /* Pointeur de type Superv_Component_i* sur le */
673 /* composant SALOME Supervisable */,
674 char * /* E Declaration du lien */
682 /* Fonctions d'interrogation */
688 void * component /* Pointeur de type Superv_Component_i* sur le */
689 /* composant SALOME Supervisable */,
690 char * /* S Repertoire ACCC */,
691 char * /* S Repertoire ACCC */
699 void * component /* Pointeur de type Superv_Component_i* sur le */
700 /* composant SALOME Supervisable */,
701 int /* E Longueur du tableau passe en parametre */,
702 int * /* S Nombre de codes retournes */,
703 char *[]/* S Tableau contenant les noms des codes */
710 void * component /* Pointeur de type Superv_Component_i* sur le */
711 /* composant SALOME Supervisable */,
712 char * /* E Nom du code dont on veut les instances */,
713 int /* E Longueur du tableau passe en parametre */,
714 int * /* S Nombre d'instances retournees */,
715 char *[]/* S Tableau contenant les noms des instances */
722 void * component /* Pointeur de type Superv_Component_i* sur le */
723 /* composant SALOME Supervisable */,
724 int /* E Longueur des tableaux passes en parametre */,
725 int * /* S Nombre de variables retournees */,
726 char *[]/* S Tableau contenant les noms des instances */,
727 char *[]/* S Tableau contenant les noms des variables */
734 void * component /* Pointeur de type Superv_Component_i* sur le */
735 /* composant SALOME Supervisable */,
736 char * /* E Nom du code dont on veut les variables */,
737 int /* E Longueur des tableaux passes en parametre */,
738 int * /* S Nombre de variables retournees */,
739 char *[]/* S Tableau contenant les noms des variables */
746 void * component /* Pointeur de type Superv_Component_i* sur le */
747 /* composant SALOME Supervisable */,
748 char * /* E Nom de l'instance dont on veut la liste */
750 char * /* S Nom du code pere de l'instance */,
751 int /* E Longueur du tableau pour les variables */
753 int /* E Longueur du tableau pour les variables */
755 int * /* S Nombre de variables entrantes retournees */,
756 int * /* S Nombre de variables sortantes retournees */,
757 char *[]/* S Tableau contenant les noms des variables */
759 char *[]/* S Tableau contenant les noms des variables */
767 void * component /* Pointeur de type Superv_Component_i* sur le */
768 /* composant SALOME Supervisable */,
769 char * /* E Nom de l'instance contenant la variable */,
770 char * /* E Nom local de la variable */,
771 int * /* S Sens de la variable */,
772 int * /* S Dependance de la variable */,
773 int * /* S Type de la variable */,
774 int /* E Longueur des tableaux permettant de */
775 /* recueillir les pas de temps et d'iteration*/,
776 int * /* S Nombre de codes retournes */,
777 float * /* S Tableau contenant les pas de temps */,
778 int * /* S Tableau contenant les pas d'iterations */
785 void * component /* Pointeur de type Superv_Component_i* sur le */
786 /* composant SALOME Supervisable */,
787 char * /* E Nom global de la variable */,
788 int /* E Longueur des tableaux pour les noms des */
789 /* instances et des variables */,
790 int * /* S Nombre de variables participant au lien */,
791 char *[]/* S Tableau contenant les noms des instances */,
792 char *[]/* S Tableau contenant les noms des variables */,
793 int * /* S Type du lien */,
794 int * /* S Niveau du lien */,
795 int * /* S Tableau des parametres d'interpolation */
796 /* des variables entrantes */,
797 float * /* S Tableau des valeurs de delta utilisees */
798 /* pour les variables entrantes */,
799 int * /* S Tableau des parametres d'extrapolation */
800 /* des variables entrantes */
808 /* Fonctions de manipulation d'options */
811 extern int cp_setopt(
814 void * component /* Pointeur de type Superv_Component_i* sur le */
815 /* composant SALOME Supervisable */,
816 int /* E Numero identifiant l'option a modifier */,
817 int /* E Valeur a donner a l'option */
821 extern int cp_getopt(
824 void * component /* Pointeur de type Superv_Component_i* sur le */
825 /* composant SALOME Supervisable */,
826 int /* E Numero identifiant l'option a consulter */,
827 int * /* S Valeur recupereee de l'option */
833 #if defined(__cplusplus) || defined(c_plusplus)