MED fichier
MEDdatagroupCreer.c
Aller à la documentation de ce fichier.
1 /* This file is part of MED.
2  *
3  * COPYRIGHT (C) 1999 - 2016 EDF R&D, CEA/DEN
4  * MED is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * MED 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
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with MED. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 
19 
20 #include <med.h>
21 #include <med_config.h>
22 #include <med_outils.h>
23 #include <hdf5.h>
24 
25 /*
26  * - Nom de la fonction : _MEDdatagroupCreer
27  * - Description : creation et ouverture d'un Datagroup HDF
28  * - Parametres :
29  * - pid (IN) : l'ID de l'objet pere
30  * - nom (IN) : le nom de l'objet fils
31  * - Resultat : l'ID du fils en cas de succes, -1 sinon
32  */
33 med_idt
34 _MEDdatagroupCreer(med_idt pid, const char * const nom)
35 {
36  med_idt id;
37  med_err ret=0;
39 
40  if ( (MED_ACCESS_MODE = _MEDmodeAcces(pid) ) == MED_ACC_UNDEF ) {
41  MESSAGE("Impossible de déterminer le mode d'acces au fichier.");
42  return -1;
43  }
44 
45  if ( MED_ACCESS_MODE == MED_ACC_RDONLY) {
46  MESSAGE("Impossible de créer un datagroup en mode MED_ACC_RDONLY.");
47  return -1;
48  };
49 
50 
51  id = _MEDdatagroupOuvrir(pid,nom);
52  if (id > 0)
53  if (MED_ACCESS_MODE == MED_ACC_RDEXT) {
54  MESSAGE("Création d'un datagroup existant impossible en mode MED_ACC_RDEXT.");
55  return -1;
56  };
57  /* sinon on le crée */
58  if (id <= 0)
59  if ((id = H5Gcreate(pid,nom,0)) < 0) {
60  MESSAGE("Impossible de créer le datagroup : ");
61  SSCRUTE(nom);
62  return -1;
63  }
64 
65  return id;
66 }
herr_t med_err
Definition: med.h:310
med_access_mode
Definition: med.h:113
#define MESSAGE(chaine)
Definition: med_utils.h:316
MEDC_EXPORT med_access_mode _MEDmodeAcces(med_idt oid)
Definition: MEDmodeAccesC.c:43
med_idt _MEDdatagroupCreer(med_idt pid, const char *const nom)
MEDC_EXPORT med_idt _MEDdatagroupOuvrir(med_idt pid, const char *const nom)
hid_t med_idt
Definition: med.h:309
med_access_mode MED_ACCESS_MODE
#define SSCRUTE(chaine)
Definition: med_utils.h:315