1 /*************************************************************************
2 * COPYRIGHT (C) 1999 - 2002 EDF R&D
3 * THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4 * IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
5 * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
6 * EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
8 * THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9 * WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11 * LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13 * YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
14 * ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
15 * INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
17 *************************************************************************/
19 # ifndef __UTILITES_H__
20 # define __UTILITES_H__
23 /* pour indiquer le statut des arguments des fonctions. */
26 #error _IN already defined
31 #error _OUT already defined
36 #error _INOUT already defined
41 #error _UNUSED already defined
51 /* --- Pour afficher le nom du fichier source courant et le numero de la ligne courante --- */
52 /* --- sur la stderr. --- */
56 fprintf(stderr, "%s [%d] : " , __FILE__ , __LINE__ ) ;\
66 /* --- Pour afficher la date et l'heure de la compilation du fichier source courant, --- */
67 /* --- sur la stdout. --- */
69 # ifdef INFOS_COMPILATION
70 # error INFOS_COMPILATION already defined
72 # define INFOS_COMPILATION {\
74 fprintf(stdout, "%s [%d] : " , __FILE__ , __LINE__ ) ;\
75 fprintf(stdout,"Compilation le %s" , __DATE__);\
76 fprintf(stdout," a %s" , __TIME__ );\
77 fprintf(stdout,"\n\n\n" );\
87 /* --- Pour attendre "secondes" secondes et afficher un message sur la stderr indiquant --- */
88 /* --- cette attente volontaire. --- */
91 # error ATTENTE already defined
93 # define ATTENTE(secondes) {\
95 fprintf( stderr, "ATTENTE de %d secondes" , secondes);\
98 fprintf( stderr, "\n" );\
108 /* ---------- Les macros suivantes ne doivent pas deja exister ! ---------- */
111 # error EXECUTION already defined
114 # error INTERRUPTION already defined
117 # error ISCRUTE already defined
120 # error RSCRUTE already defined
123 # error SSCRUTE already defined
126 # error CSCRUTE already defined
129 # error XSCRUTE already defined
132 # error MESSAGE already defined
142 /* --- Pour tracer sur la stderr l'execution d"une instruction. --- */
144 # define EXECUTION(instruction) {\
146 fprintf( stderr,"INSTRUCTION %s" , #instruction ) ;\
150 fprintf( stderr," FRANCHIE\n" ) ;\
160 /* --- Pour afficher un message d'interruption volontaire et retourner le code retour --- */
163 # define INTERRUPTION(code) {\
165 fprintf( stderr," INTERRUPTION code = %d",code) ;\
166 fprintf(stderr,"\n") ;\
176 /* --- Pour conditionner la poursuite du traitement par la validite de la condition --- */
177 /* --- "condiiton". --- */
180 # define ASSERT(condition) if( !(condition) ){\
182 fprintf(stderr,"condition %s VIOLEE\n",#condition);\
185 # endif /* # ifndef ASSERT */
193 /* --- Pour afficher sur la stderr la valeur d'une variable precedee de son nom. --- */
195 # define ISCRUTE(entier) {\
197 fprintf(stderr,"%s = %d\n",#entier,entier) ;\
200 # define RSCRUTE(reel) {\
202 fprintf(stderr,"%s = %f\n",#reel,reel) ;\
205 # define XSCRUTE(pointeur) {\
207 fprintf(stderr,"%s = %x\n",#pointeur,pointeur) ;\
210 # define CSCRUTE(car) {\
212 fprintf(stderr,"%s = %c\n",#car,car) ;\
215 # define SSCRUTE(chaine) {\
217 fprintf(stderr,"%s = \"%s\"\n",#chaine,chaine) ;\
220 # define MESSAGE(chaine) {\
222 fprintf(stderr,"%s\n",chaine) ;\
227 fprintf( stderr , "} FIN %s\n\n\n" , nom ) ;\
230 # define DEBUT(nom) {\
231 fprintf( stderr , "\n\n\n") ;\
233 fprintf( stderr , "{ DEBUT %s\n" , nom ) ;\
238 # else /* # ifdef _DEBOG_ */
242 # define EXECUTION(instruction) instruction
243 # define INTERRUPTION(code)
246 # define ASSERT(condition)
249 # define ISCRUTE(entier)
250 # define RSCRUTE(reel)
251 # define CSCRUTE(car)
252 # define SSCRUTE(chaine)
253 # define MESSAGE(chaine)
258 # endif /* # ifdef _DEBOG_ */
261 # endif /* # ifndef __UTILITES_H__ */