Code_Saturne
CFD tool
ecs_famille_chaine.h
Go to the documentation of this file.
1 #ifndef _ECS_FAMILLE_CHAINE_H_
2 #define _ECS_FAMILLE_CHAINE_H_
3 
4 /*============================================================================
5  * Prototypes des fonctions de base
6  * associées à une liste chaînée de structures `ecs_famille_t' décrivant
7  * une famille
8  *============================================================================*/
9 
10 /*
11  This file is part of Code_Saturne, a general-purpose CFD tool.
12 
13  Copyright (C) 1998-2012 EDF S.A.
14 
15  This program is free software; you can redistribute it and/or modify it under
16  the terms of the GNU General Public License as published by the Free Software
17  Foundation; either version 2 of the License, or (at your option) any later
18  version.
19 
20  This program is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
22  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
23  details.
24 
25  You should have received a copy of the GNU General Public License along with
26  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
27  Street, Fifth Floor, Boston, MA 02110-1301, USA.
28 */
29 
30 /*----------------------------------------------------------------------------*/
31 
32 
33 /*============================================================================
34  * Visibilité
35  *============================================================================*/
36 
37 /*----------------------------------------------------------------------------
38  * Fichiers `include' librairie standard C ou BFT
39  *----------------------------------------------------------------------------*/
40 
41 #include <stdio.h>
42 
43 
44 /*----------------------------------------------------------------------------
45  * Fichiers `include' publics du paquetage global "Utilitaire"
46  *----------------------------------------------------------------------------*/
47 
48 #include "ecs_tab.h"
49 
50 
51 /*----------------------------------------------------------------------------
52  * Fichiers `include' publics des paquetages visibles
53  *----------------------------------------------------------------------------*/
54 
55 #include "ecs_descr.h"
56 
57 
58 /*----------------------------------------------------------------------------
59  * Fichiers `include' publics du paquetage courant
60  *----------------------------------------------------------------------------*/
61 
62 #include "ecs_famille.h"
63 
64 
65 /*============================================================================
66  * Prototypes de fonctions publiques
67  *============================================================================*/
68 
69 /*----------------------------------------------------------------------------
70  * Fonction qui crée une liste chaînée de familles à partir :
71  * - des définitions de chaque famille en fonction des numéros de descripteur
72  * - de la liste chaînée des descripteurs
73  * La fonction renvoie la tête de la liste chaînée
74  *----------------------------------------------------------------------------*/
75 
77 ecs_famille_chaine__cree(ecs_int_t **def_fam_descr,
78  const ecs_int_t *nbr_descr_fam,
79  int num_fam_deb,
80  int nbr_fam,
81  ecs_descr_t *descr_tete);
82 
83 /*----------------------------------------------------------------------------
84  * Fonction libérant la portion d'une liste chaînée de familles
85  * à partir d'un noeud dont le pointeur est donné en argument.
86  * Le noeud est à NULL au retour de la fonction
87  *----------------------------------------------------------------------------*/
88 
89 void
91 
92 /*----------------------------------------------------------------------------
93  * Fonction imprimant à partir d'un noeud `ecs_famille_t' donné
94  * une liste chaînée de tables
95  * sur le flux décrit par la structure `FILE'
96  *----------------------------------------------------------------------------*/
97 
98 void
99 ecs_famille_chaine__imprime(const ecs_famille_t *this_fam_noeud,
100  ecs_int_t imp_col,
101  FILE *fic_imp);
102 
103 /*----------------------------------------------------------------------------
104  * Fonction qui renvoie la taille en octets
105  * d'une chaîne de structures `ecs_famille_t'
106  *----------------------------------------------------------------------------*/
107 
108 float
109 ecs_famille_chaine__ret_taille(const ecs_famille_t *this_fam_noeud);
110 
111 /*----------------------------------------------------------------------------
112  * Fonction qui ajoute à la fin d'une liste chaînée de familles
113  * réceptrice dont la tête est donnée,
114  * une liste chaînée de familles à concaténer dont la tête est donnée
115  *----------------------------------------------------------------------------*/
116 
117 void
119  ecs_famille_t *fam_concat_tete);
120 
121 /*----------------------------------------------------------------------------
122  * Fonction qui affiche la définition de la famille de numéro donné
123  * à partir de la liste chaînée des familles dont la tête est donnée
124  *----------------------------------------------------------------------------*/
125 
126 void
128  ecs_famille_t *fam_tete);
129 
130 /*----------------------------------------------------------------------------
131  * Fonction qui renvoie le nombre de familles
132  * de la liste chaînée des familles dont la tête est donnée
133  *----------------------------------------------------------------------------*/
134 
135 int
137 
138 /*----------------------------------------------------------------------------
139  * Fonction qui copie une liste chaînée de familles
140  * dont la tête est donnée
141  *----------------------------------------------------------------------------*/
142 
145 
146 /*----------------------------------------------------------------------------
147  * Fonction qui renvoie pour chaque numéro de famille
148  * le nombre et une liste de pointeurs sur les noms des groupes
149  * des descripteurs de la famille
150  *----------------------------------------------------------------------------*/
151 
154 
155 /*----------------------------------------------------------------------------
156  * Fonction qui construit une liste chaînée de descripteurs
157  * pour chaque numéro de famille contenu dans le tableau donné
158  * et à partir de la liste chaînée des familles
159  *
160  * Cette fonction détermine aussi le tableau donnant pour chaque famille
161  * la liste des numéros de descripteurs associes à la famille
162  *----------------------------------------------------------------------------*/
163 
164 void
166  ecs_tab_int_t tab_fam,
167  ecs_descr_t **descr_tete_att,
168  ecs_tab_int_t *tab_att_fam,
169  int *nbr_max_att_fam);
170 
171 /*----------------------------------------------------------------------------
172  * Fonction qui renvoie un tableau marquant chaque numéro de famille.
173  *
174  * La libération du tableau est à la charge du code appelant
175  *----------------------------------------------------------------------------*/
176 
177 bool *
179 
180 /*----------------------------------------------------------------------------*/
181 
182 #endif /* _ECS_FAMILLE_CHAINE_H_ */
void ecs_famille_chaine__affiche(const ecs_int_t num_fam, ecs_famille_t *fam_tete)
Definition: ecs_famille_chaine.c:258
int ecs_int_t
Definition: ecs_def.h:131
ecs_famille_t * ecs_famille_chaine__cree(ecs_int_t **def_fam_descr, const ecs_int_t *nbr_descr_fam, int num_fam_deb, int nbr_fam, ecs_descr_t *descr_tete)
Definition: ecs_famille_chaine.c:99
int ecs_famille_chaine__ret_nbr(const ecs_famille_t *fam_tete)
Definition: ecs_famille_chaine.c:284
Definition: ecs_descr_priv.h:58
Definition: ecs_tab.h:44
float ecs_famille_chaine__ret_taille(const ecs_famille_t *this_fam_noeud)
Definition: ecs_famille_chaine.c:199
void ecs_famille_chaine__cree_descr(ecs_famille_t *famille, ecs_tab_int_t tab_fam, ecs_descr_t **descr_tete_att, ecs_tab_int_t *tab_att_fam, int *nbr_max_att_fam)
Definition: ecs_famille_chaine.c:388
bool * ecs_famille_chaine__indic_fam_att(const ecs_famille_t *fam_tete)
Definition: ecs_famille_chaine.c:457
void ecs_famille_chaine__ajoute(ecs_famille_t **this_fam_tete, ecs_famille_t *fam_concat_tete)
Definition: ecs_famille_chaine.c:222
Definition: ecs_famille_priv.h:70
ecs_famille_t * ecs_famille_chaine__copie(ecs_famille_t *famille_tete)
Definition: ecs_famille_chaine.c:313
Definition: ecs_tab.h:39
void ecs_famille_chaine__detruit(ecs_famille_t **this_fam_noeud)
Definition: ecs_famille_chaine.c:152
ecs_tab_char_t * ecs_famille_chaine__ret_nom(ecs_famille_t *fam_tete)
Definition: ecs_famille_chaine.c:344
void ecs_famille_chaine__imprime(const ecs_famille_t *this_fam_noeud, ecs_int_t imp_col, FILE *fic_imp)
Definition: ecs_famille_chaine.c:171