MED fichier
MEDfilterClose.c
Aller à la documentation de ce fichier.
1 /* This file is part of MED.
2  *
3  * COPYRIGHT (C) 1999 - 2023 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 #include <med.h>
20 #include <med_config.h>
21 #include <med_outils.h>
22 
35 med_err MEDfilterClose( med_filter * const filter ) {
36 
37  med_err _ret =-1;
38  int _i=0;
41 
42  for (_i=0; _i < (*filter).nspaces; ++_i) {
43  if ( H5Sclose((*filter).memspace[_i]) < 0 ) {
45  ISCRUTE_id((*filter).memspace[_i]);
46  ISCRUTE_int(_i);
47  ISCRUTE((*filter).nspaces);
48  goto ERROR;
49  } else
50  (*filter).memspace[_i]=0;
51 
52  if ( H5Sclose((*filter).diskspace[_i]) < 0 ) {
54  ISCRUTE_id((*filter).diskspace[_i]);
55  ISCRUTE_int(_i);
56  ISCRUTE((*filter).nspaces);
57  goto ERROR;
58  } else
59  (*filter).diskspace[_i]=0;
60  }
61 
62 
63  (*filter).nspaces=0;
64  /*Le champ filterarray23v30 est uniquement utilisé dans _MEDfilterEntityCr236
65  pour les besoins de _MEDmeshAdvancedRd236, il n'est donc pas intégré
66  à la signature des MED*Filter. */
67  if ((*filter).filterarray23v30) {
68  free((*filter).filterarray23v30);
69  (*filter).filterarray23v30 = NULL;
70  }
71 
72  if ( _MEDsetFilter(MED_MAX_FILTER_SPACES,_memspace, _diskspace,
73  0, 0, 0, 0, MED_UNDEF_INTERLACE,
75  MED_UNDEF_STMODE, MED_NO_PROFILE, filter ) <0) {
77  goto ERROR;
78  }
79  (*filter).nspaces=0;
80 
81  _ret = 0;
82  ERROR:
83  return _ret;
84 }
MEDfilterClose
med_err MEDfilterClose(med_filter *const filter)
Désalloue les ressources hdf détenues par un filtre.
Definition: MEDfilterClose.c:35
MED_MAX_FILTER_SPACES
#define MED_MAX_FILTER_SPACES
Definition: med.h:351
ISCRUTE_id
#define ISCRUTE_id(entier)
Definition: med_utils.h:319
MED_UNDEF_STMODE
Definition: med.h:110
ISCRUTE_int
#define ISCRUTE_int(entier)
Definition: med_utils.h:314
med_idt
hid_t med_idt
Definition: med.h:333
MED_ERR_
#define MED_ERR_(rt, r1, r2, r3)
Definition: med_utils.h:160
MED_ERR_DATASPACE
#define MED_ERR_DATASPACE
Definition: med_err.h:108
med_err
herr_t med_err
Definition: med.h:334
MED_UNDEF_INTERLACE
Definition: med.h:102
med_outils.h
MED_ERR_CLOSE
#define MED_ERR_CLOSE
Definition: med_err.h:30
MED_ERR_ID_MSG
#define MED_ERR_ID_MSG
Definition: med_err.h:188
MED_ERR_FILTER
#define MED_ERR_FILTER
Definition: med_err.h:93
MED_NO_FILTER_SIZE
#define MED_NO_FILTER_SIZE
Definition: med.h:381
med_filter
Filtre de sélection.
Definition: med.h:357
ISCRUTE
#define ISCRUTE(entier)
Definition: med_utils.h:313
med_config.h
_MEDsetFilter
MEDC_EXPORT med_err _MEDsetFilter(const med_int nspaces, const med_idt *const memspace, const med_idt *const diskspace, const med_int nentity, const med_int nvaluesperentity, const med_int nconstituentpervalue, const med_int constituentselect, const med_switch_mode switchmode, const med_int filterarraysize, const med_int profilearraysize, const med_storage_mode storagemode, const char *const profilename, med_filter *const filter)
MED_NO_PROFILE_SIZE
#define MED_NO_PROFILE_SIZE
Definition: med.h:309
MED_NO_PROFILE
#define MED_NO_PROFILE
Definition: med.h:283
med.h
MED_MAX_FILTER_SPACES_INIT
#define MED_MAX_FILTER_SPACES_INIT
Definition: med.h:352
MED_ERR_INIT
#define MED_ERR_INIT
Definition: med_err.h:33