/* This file is part of MED.
*
* COPYRIGHT (C) 1999 - 2019 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 .
*/
#include
#include
#include
#include
#include "med_utils.h"
med_err _MEDsoftlinkDel(const med_idt id,
const char * const softlinkname,
med_bool linkmustexist
) {
med_err _ret=-1;
H5L_info_t _linkinfo;
if ( H5Lget_info( id, softlinkname, &_linkinfo, H5P_DEFAULT ) >= 0 ) {
if ( _linkinfo.type == H5L_TYPE_SOFT ) {
if ( H5Ldelete(id,softlinkname,H5P_DEFAULT) < 0 ) {
MED_ERR_(_ret,MED_ERR_DELETE,MED_ERR_LINK,softlinkname);
goto ERROR;
}
} else if (linkmustexist) {
MED_ERR_(_ret,MED_ERR_UNRECOGNIZED,MED_ERR_LINK,softlinkname);
goto ERROR;
}
} else if (linkmustexist) {
MED_ERR_(_ret,MED_ERR_OPEN,MED_ERR_LINK,softlinkname);
goto ERROR;
}
_ret=0;
ERROR:
return _ret;
}