MED fichier
MEDfilterClose.c
Aller à la documentation de ce fichier.
1/* This file is part of MED.
2 *
3 * COPYRIGHT (C) 1999 - 2020 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
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}
med_err MEDfilterClose(med_filter *const filter)
Désalloue les ressources hdf détenues par un filtre.
#define MED_MAX_FILTER_SPACES_INIT
Definition: med.h:341
@ MED_UNDEF_INTERLACE
Definition: med.h:100
#define MED_NO_PROFILE_SIZE
Definition: med.h:298
@ MED_UNDEF_STMODE
Definition: med.h:108
#define MED_MAX_FILTER_SPACES
Definition: med.h:340
#define MED_NO_PROFILE
Definition: med.h:279
herr_t med_err
Definition: med.h:323
#define MED_NO_FILTER_SIZE
Definition: med.h:370
hid_t med_idt
Definition: med.h:322
#define MED_ERR_DATASPACE
Definition: med_err.h:108
#define MED_ERR_INIT
Definition: med_err.h:33
#define MED_ERR_FILTER
Definition: med_err.h:93
#define MED_ERR_CLOSE
Definition: med_err.h:30
#define MED_ERR_ID_MSG
Definition: med_err.h:188
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)
#define MED_ERR_(rt, r1, r2, r3)
Definition: med_utils.h:160
#define ISCRUTE(entier)
Definition: med_utils.h:313
#define ISCRUTE_id(entier)
Definition: med_utils.h:319
#define ISCRUTE_int(entier)
Definition: med_utils.h:314
Filtre de sélection.
Definition: med.h:346