Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/med.git] / src / MEDWrapper / V2_1 / Core / MEDfichEntete.cxx
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.
7 *  
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.
12 *
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
16 *
17 *************************************************************************/
18
19 #include "med.hxx"
20 #include "med_outils.hxx"
21
22 #include <string.h>
23
24 namespace med_2_1{
25
26 med_err 
27 MEDfichEntete(med_idt fid, med_fich_info quoi, char str[])
28 {
29   med_idt root;
30   med_err ret;
31   char locale[MED_TAILLE_DESC+1];
32   char chemin[MED_TAILLE_MAA+1];
33
34   switch (quoi)
35     {
36     case MED_HDF_VERSION : 
37       strcpy(str,HDF_VERSION_ACTUELLE);
38       break;
39
40     case MED_VERSION :
41       strcpy(str,MED_VERSION_ACTUELLE); 
42       break;
43
44     case MED_FICH_DES :
45       /*
46        * On inhibe le gestionnaire d'erreur HDF
47        */
48       _MEDmodeErreurVerrouiller();
49       
50       /*
51        * On ouvre le Data Group racine
52        */
53       strncpy(chemin,MED_MAA,strlen(MED_MAA)-1);
54       chemin[MED_TAILLE_MAA-1] = '\0';
55       if ((root = _MEDdatagroupOuvrir(fid,chemin)) < 0)
56         return -1;
57
58       /*
59        * On regarde si l'attribut existe
60        * Si non => erreur
61        * Si oui => on le copie dans str
62        */
63       if ((ret = _MEDattrStringLire(root,MED_NOM_DESCRIPTEUR,
64                                     MED_TAILLE_DESC,locale)) < 0)
65         return -1;
66       strcpy(str,locale);
67       
68       if ((ret = _MEDdatagroupFermer(root)) < 0)
69         return -1;
70
71       break;
72       
73     default :
74       return -1;
75     }
76   return 0;
77 }
78
79 }