MEDfilterClose.c
Aller à la documentation de ce fichier.
/* This file is part of MED.
*
* COPYRIGHT (C) 1999 - 2020 EDF R&D, CEA/DEN
* MED is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* MED is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with MED. If not, see <http://www.gnu.org/licenses/>.
*/
#include <med.h>
#include <med_config.h>
#include <med_outils.h>
med_err MEDfilterClose( med_filter * const filter ) {
med_err _ret =-1;
int _i=0;
med_idt _memspace[MED_MAX_FILTER_SPACES]=MED_MAX_FILTER_SPACES_INIT;
med_idt _diskspace[MED_MAX_FILTER_SPACES]=MED_MAX_FILTER_SPACES_INIT;
for (_i=0; _i < (*filter).nspaces; ++_i) {
if ( H5Sclose((*filter).memspace[_i]) < 0 ) {
MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATASPACE, MED_ERR_ID_MSG );
ISCRUTE_id((*filter).memspace[_i]);
ISCRUTE_int(_i);
ISCRUTE((*filter).nspaces);
goto ERROR;
} else
(*filter).memspace[_i]=0;
if ( H5Sclose((*filter).diskspace[_i]) < 0 ) {
MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATASPACE, MED_ERR_ID_MSG );
ISCRUTE_id((*filter).diskspace[_i]);
ISCRUTE_int(_i);
ISCRUTE((*filter).nspaces);
goto ERROR;
} else
(*filter).diskspace[_i]=0;
}
(*filter).nspaces=0;
/*Le champ filterarray23v30 est uniquement utilisé dans _MEDfilterEntityCr236
pour les besoins de _MEDmeshAdvancedRd236, il n'est donc pas intégré
à la signature des MED*Filter. */
if ((*filter).filterarray23v30) {
free((*filter).filterarray23v30);
(*filter).filterarray23v30 = NULL;
}
if ( _MEDsetFilter(MED_MAX_FILTER_SPACES,_memspace, _diskspace,
0, 0, 0, 0, MED_UNDEF_INTERLACE,
MED_NO_FILTER_SIZE, MED_NO_PROFILE_SIZE,
MED_UNDEF_STMODE, MED_NO_PROFILE, filter ) <0) {
MED_ERR_(_ret,MED_ERR_INIT,MED_ERR_FILTER,"");
goto ERROR;
}
(*filter).nspaces=0;
_ret = 0;
ERROR:
return _ret;
}
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_INIT
#define MED_MAX_FILTER_SPACES_INIT
Definition med.h:341
MED_UNDEF_INTERLACE
@ MED_UNDEF_INTERLACE
Definition med.h:100
MED_NO_PROFILE_SIZE
#define MED_NO_PROFILE_SIZE
Definition med.h:298
MED_UNDEF_STMODE
@ MED_UNDEF_STMODE
Definition med.h:108
MED_MAX_FILTER_SPACES
#define MED_MAX_FILTER_SPACES
Definition med.h:340
MED_NO_PROFILE
#define MED_NO_PROFILE
Definition med.h:279
med_err
herr_t med_err
Definition med.h:323
MED_NO_FILTER_SIZE
#define MED_NO_FILTER_SIZE
Definition med.h:370
med_idt
hid_t med_idt
Definition med.h:322
med.h
med_config.h
MED_ERR_DATASPACE
#define MED_ERR_DATASPACE
Definition med_err.h:108
MED_ERR_INIT
#define MED_ERR_INIT
Definition med_err.h:33
MED_ERR_FILTER
#define MED_ERR_FILTER
Definition med_err.h:93
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
_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_outils.h
MED_ERR_
#define MED_ERR_(rt, r1, r2, r3)
Definition med_utils.h:160
ISCRUTE
#define ISCRUTE(entier)
Definition med_utils.h:313
ISCRUTE_id
#define ISCRUTE_id(entier)
Definition med_utils.h:319
ISCRUTE_int
#define ISCRUTE_int(entier)
Definition med_utils.h:314
med_filter
Filtre de sélection.
Definition med.h:346