Mercurial > hg > minc-tools
changeset 1744:43479573053c
Revised logging/error handling
author | bert <bert> |
---|---|
date | Tue, 27 Apr 2004 15:40:22 +0000 |
parents | 932ad1d4a87c |
children | 1bded95651f6 |
files | libsrc/image_conversion.c |
diffstat | 1 files changed, 133 insertions(+), 95 deletions(-) [+] |
line wrap: on
line diff
--- a/libsrc/image_conversion.c +++ b/libsrc/image_conversion.c @@ -34,7 +34,10 @@ @CREATED : July 27, 1992. (Peter Neelin, Montreal Neurological Institute) @MODIFIED : * $Log: image_conversion.c,v $ - * Revision 6.10 2003-09-18 16:17:00 bert + * Revision 6.11 2004-04-27 15:40:22 bert + * Revised logging/error handling + * + * Revision 6.10 2003/09/18 16:17:00 bert * Correctly cast double to nc_type * * Revision 6.9 2001/11/28 15:38:07 neelin @@ -147,7 +150,7 @@ ---------------------------------------------------------------------------- */ #ifndef lint -static char rcsid[] = "$Header: /private-cvsroot/minc/libsrc/image_conversion.c,v 6.10 2003-09-18 16:17:00 bert Exp $ MINC (MNI)"; +static char rcsid[] = "$Header: /private-cvsroot/minc/libsrc/image_conversion.c,v 6.11 2004-04-27 15:40:22 bert Exp $ MINC (MNI)"; #endif #include <type_limits.h> @@ -213,7 +216,7 @@ /* Check that the allocation was successful */ if (minc_icv_list == NULL) { MI_LOG_SYS_ERROR1("miicv_create"); - MI_RETURN_ERROR(MI_ERROR); + MI_RETURN(MI_ERROR); } /* Put in NULL pointers */ for (new_icv=minc_icv_list_nalloc; new_icv<new_nalloc; new_icv++) @@ -228,7 +231,7 @@ /* Allocate a new structure */ if ((minc_icv_list[new_icv]=MALLOC(1, mi_icv_type))==NULL) { MI_LOG_SYS_ERROR1("miicv_create"); - MI_RETURN_ERROR(MI_ERROR); + MI_RETURN(MI_ERROR); } icvp=minc_icv_list[new_icv]; @@ -303,11 +306,14 @@ MI_SAVE_ROUTINE_NAME("miicv_free"); /* Check icv id */ - if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN_ERROR(MI_ERROR); + if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN(MI_ERROR); /* Detach the icv if it is attached */ - if (icvp->cdfid != MI_ERROR) - {MI_CHK_ERR(miicv_detach(icvid))} + if (icvp->cdfid != MI_ERROR) { + if (miicv_detach(icvid) < 0) { + MI_RETURN(MI_ERROR); + } + } /* Free anything allocated at creation time */ FREE(icvp->user_maxvar); @@ -344,13 +350,12 @@ MI_SAVE_ROUTINE_NAME("miicv_setdbl"); /* Check icv id */ - if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN_ERROR(MI_ERROR); + if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN(MI_ERROR); /* Check that the icv is not attached to a file */ if (icvp->cdfid != MI_ERROR) { - MI_LOG_PKG_ERROR2(MI_ERR_ICVATTACHED, - "Attempt to modify an attached image conversion variable"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_ICVATTACHED); + MI_RETURN(MI_ERROR); } /* Set the property */ @@ -403,9 +408,8 @@ case MI_ICV_NUM_IMGDIMS: ival = value; if ((ival<0) || (ival>MI_MAX_IMGDIMS)) { - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "MI_ICV_NUM_IMGDIMS out of range"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_BADPROP, _("MI_ICV_NUM_IMGDIMS out of range")); + MI_RETURN(MI_ERROR); } icvp->user_num_imgdims = ival; break; @@ -418,10 +422,10 @@ case MI_ICV_SIGN: case MI_ICV_MAXVAR: case MI_ICV_MINVAR: - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "Tried to set icv string property to a number"); - MI_RETURN_ERROR(MI_ERROR); - break; + milog_message(MI_MSG_BADPROP, + _("Can't store a number in a string value")); + MI_RETURN(MI_ERROR); + break; default: /* Check for image dimension properties */ if ((icv_property>=MI_ICV_DIM_SIZE) && @@ -430,9 +434,8 @@ icvp->user_dim_size[idim] = value; } else { - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "Tried to set unknown or illegal icv property"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_BADPROP, "Unknown code"); + MI_RETURN(MI_ERROR); } break; } @@ -462,7 +465,9 @@ MI_SAVE_ROUTINE_NAME("miicv_setint"); - {MI_CHK_ERR(miicv_setdbl(icvid, icv_property, (double) value))} + if (miicv_setdbl(icvid, icv_property, (double) value) < 0) { + MI_RETURN(MI_ERROR); + } MI_RETURN(MI_NOERROR); } @@ -488,7 +493,9 @@ MI_SAVE_ROUTINE_NAME("miicv_setlong"); - {MI_CHK_ERR(miicv_setdbl(icvid, icv_property, (double) value))} + if (miicv_setdbl(icvid, icv_property, (double) value) < 0) { + MI_RETURN(MI_ERROR); + } MI_RETURN(MI_NOERROR); } @@ -516,13 +523,12 @@ MI_SAVE_ROUTINE_NAME("miicv_setstr"); /* Check icv id */ - if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN_ERROR(MI_ERROR); + if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN(MI_ERROR); /* Check that the icv is not attached to a file */ if (icvp->cdfid != MI_ERROR) { - MI_LOG_PKG_ERROR2(MI_ERR_ICVATTACHED, - "Attempt to modify an attached image conversion variable"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_ICVATTACHED); + MI_RETURN(MI_ERROR); } /* Set the property */ @@ -563,22 +569,19 @@ case MI_ICV_ADIM_SIZE: case MI_ICV_BDIM_SIZE: case MI_ICV_KEEP_ASPECT: - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "Tried to set icv numeric property to a string"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_BADPROP, "Can't store a string in a numeric property"); + MI_RETURN(MI_ERROR); break; default: /* Check for image dimension properties */ if ((icv_property>=MI_ICV_DIM_SIZE) && (icv_property<MI_ICV_DIM_SIZE+MI_MAX_IMGDIMS)) { - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "Tried to set icv numeric property to a string"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_BADPROP, "Can't store a string in a numeric property"); + MI_RETURN(MI_ERROR); } else { - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "Tried to set unknown or illegal icv property"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_BADPROP, "Unknown code"); + MI_RETURN(MI_ERROR); } break; } @@ -607,7 +610,7 @@ MI_SAVE_ROUTINE_NAME("miicv_inqdbl"); /* Check icv id */ - if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN_ERROR(MI_ERROR); + if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN(MI_ERROR); /* Set the property */ switch (icv_property) { @@ -672,9 +675,9 @@ case MI_ICV_SIGN: case MI_ICV_MAXVAR: case MI_ICV_MINVAR: - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "Tried to inquire about icv string property as a number"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_BADPROP, + _("Tried to get icv string property as a number")); + MI_RETURN(MI_ERROR); break; default: /* Check for image dimension properties */ @@ -694,9 +697,8 @@ *value = icvp->derv_dim_start[idim]; } else { - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "Tried to inquire about unknown icv property"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_BADPROP, _("Tried to get unknown icv property")); + MI_RETURN(MI_ERROR); } break; } @@ -723,7 +725,10 @@ MI_SAVE_ROUTINE_NAME("miicv_inqint"); - {MI_CHK_ERR(miicv_inqdbl(icvid, icv_property, &dvalue))} + if (miicv_inqdbl(icvid, icv_property, &dvalue) < 0) { + MI_RETURN(MI_ERROR); + } + *value = dvalue; MI_RETURN(MI_NOERROR); @@ -748,7 +753,10 @@ MI_SAVE_ROUTINE_NAME("miicv_inqlong"); - {MI_CHK_ERR(miicv_inqdbl(icvid, icv_property, &dvalue))} + if (miicv_inqdbl(icvid, icv_property, &dvalue) < 0) { + MI_RETURN(MI_ERROR); + } + *value = dvalue; MI_RETURN(MI_NOERROR); @@ -775,7 +783,7 @@ MI_SAVE_ROUTINE_NAME("miicv_inqstr"); /* Check icv id */ - if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN_ERROR(MI_ERROR); + if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN(MI_ERROR); /* Set the property */ switch (icv_property) { @@ -819,9 +827,9 @@ case MI_ICV_NUM_DIMS: case MI_ICV_CDFID: case MI_ICV_VARID: - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "Tried to inquire about icv numeric property as a string"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_BADPROP, + _("Tried to get icv numeric property as a string")); + MI_RETURN(MI_ERROR); break; default: /* Check for image dimension properties */ @@ -831,14 +839,14 @@ (icv_property<MI_ICV_DIM_STEP+MI_MAX_IMGDIMS)) || ((icv_property>=MI_ICV_DIM_START) && (icv_property<MI_ICV_DIM_START+MI_MAX_IMGDIMS))) { - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "Tried to inquire about icv numeric property as a string"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_BADPROP, + _("Tried to get icv numeric property as a string")); + MI_RETURN(MI_ERROR); } else { - MI_LOG_PKG_ERROR2(MI_ERR_BADPROP, - "Tried to inquire about unknown icv property"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_BADPROP, + _("Tried to get unknown icv property")); + MI_RETURN(MI_ERROR); } break; } @@ -873,14 +881,19 @@ MI_SAVE_ROUTINE_NAME("miicv_ndattach"); /* Check icv id */ - if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN_ERROR(MI_ERROR); + if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN(MI_ERROR); /* If the icv is attached, then detach it */ - if (icvp->cdfid != MI_ERROR) - {MI_CHK_ERR(miicv_detach(icvid))} + if (icvp->cdfid != MI_ERROR) { + if (miicv_detach(icvid) < 0) { + MI_RETURN(MI_ERROR); + } + } /* Inquire about the variable's type, sign and number of dimensions */ - {MI_CHK_ERR(MI_icv_get_type(icvp, cdfid, varid))} + if (MI_icv_get_type(icvp, cdfid, varid) < 0) { + MI_RETURN(MI_ERROR); + } /* If not doing range calculations, just set derv_firstdim for MI_icv_access, otherwise, call routines to calculate range and @@ -890,10 +903,14 @@ } else { /* Get valid range */ - {MI_CHK_ERR(MI_icv_get_vrange(icvp, cdfid, varid))} + if (MI_icv_get_vrange(icvp, cdfid, varid) < 0) { + MI_RETURN(MI_ERROR); + } /* Get normalization info */ - {MI_CHK_ERR(MI_icv_get_norm(icvp, cdfid, varid))} + if (MI_icv_get_norm(icvp, cdfid, varid) < 0) { + MI_RETURN(MI_ERROR); + } } /* Set other fields to defaults */ @@ -960,13 +977,15 @@ MI_SAVE_ROUTINE_NAME("MI_icv_get_type"); /* Inquire about the variable */ - MI_CHK_ERR(ncvarinq(cdfid, varid, NULL, &(icvp->var_type), - &(icvp->var_ndims), icvp->var_dim, NULL)) + if (ncvarinq(cdfid, varid, NULL, &(icvp->var_type), + &(icvp->var_ndims), icvp->var_dim, NULL) < 0) { + MI_RETURN(MI_ERROR); + } /* Check that the variable type is numeric */ if (icvp->var_type==NC_CHAR) { - MI_LOG_PKG_ERROR2(MI_ERR_NONNUMERIC,"Non-numeric datatype"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_VARNOTNUM); + MI_RETURN(MI_ERROR); } /* Try to find out the sign of the variable using MIsigntype. */ @@ -1107,7 +1126,9 @@ icvp->derv_imgmin = icvp->user_imgmin; } else { - MI_CHK_ERR(miget_image_range(cdfid, image_range)) + if (miget_image_range(cdfid, image_range) < 0) { + MI_RETURN(MI_ERROR); + } icvp->derv_imgmin = image_range[0]; icvp->derv_imgmax = image_range[1]; } @@ -1118,8 +1139,9 @@ vid[1]=icvp->imgmaxid; if ((vid[0] != MI_ERROR) && (vid[1] != MI_ERROR)) { for (imm=0; imm < 2; imm++) { - MI_CHK_ERR(ncvarinq(cdfid, vid[imm], NULL, NULL, - &ndims, dim, NULL)) + if (ncvarinq(cdfid, vid[imm], NULL, NULL, &ndims, dim, NULL) < 0) { + MI_RETURN(MI_ERROR); + } for (idim=0; idim<ndims; idim++) { for (i=0; i<icvp->var_ndims; i++) { if (icvp->var_dim[i]==dim[idim]) @@ -1155,7 +1177,7 @@ MI_SAVE_ROUTINE_NAME("miicv_detach"); /* Check icv id */ - if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN_ERROR(MI_ERROR); + if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN(MI_ERROR); /* Check that the icv is in fact attached */ if (icvp->cdfid == MI_ERROR) @@ -1202,10 +1224,12 @@ MI_SAVE_ROUTINE_NAME("miicv_get"); /* Check icv id */ - if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN_ERROR(MI_ERROR); + if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN(MI_ERROR); /* Get the data */ - MI_CHK_ERR(MI_icv_access(MI_PRIV_GET, icvp, start, count, values)) + if (MI_icv_access(MI_PRIV_GET, icvp, start, count, values) < 0) { + MI_RETURN(MI_ERROR); + } MI_RETURN(MI_NOERROR); } @@ -1233,10 +1257,12 @@ MI_SAVE_ROUTINE_NAME("miicv_put"); /* Check icv id */ - if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN_ERROR(MI_ERROR); + if ((icvp=MI_icv_chkid(icvid)) == NULL) MI_RETURN(MI_ERROR); - MI_CHK_ERR(MI_icv_access(MI_PRIV_PUT, icvp, start, count, values)) + if (MI_icv_access(MI_PRIV_PUT, icvp, start, count, values) < 0) { + MI_RETURN(MI_ERROR); + } MI_RETURN(MI_NOERROR); } @@ -1277,17 +1303,21 @@ /* Check that icv is attached to a variable */ if (icvp->cdfid == MI_ERROR) { - MI_LOG_PKG_ERROR2(MI_ERR_ICVNOTATTACHED, - "ICV is not attached to an image variable"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_ICVNOTATTACHED); + + MI_RETURN(MI_ERROR); } /* Zero the user's buffer if needed */ if ((operation == MI_PRIV_GET) && (icvp->derv_do_zero)) - {MI_CHK_ERR(MI_icv_zero_buffer(icvp, count, values))} + if (MI_icv_zero_buffer(icvp, count, values) < 0) { + MI_RETURN(MI_ERROR); + } /* Translate icv coordinates to variable coordinates */ - {MI_CHK_ERR(MI_icv_coords_tovar(icvp, start, count, var_start, var_count))} + if (MI_icv_coords_tovar(icvp, start, count, var_start, var_count) < 0) { + MI_RETURN(MI_ERROR); + } /* Save icv coordinates for future reference (for dimension conversion routines) */ @@ -1342,14 +1372,18 @@ /* Calculate scale factor */ if (icvp->do_scale) { - MI_CHK_ERR(MI_icv_calc_scale(operation, icvp, chunk_start)) + if (MI_icv_calc_scale(operation, icvp, chunk_start) < 0) { + MI_RETURN(MI_ERROR); + } } /* Get the values */ - MI_CHK_ERR(MI_varaccess(operation, icvp->cdfid, icvp->varid, - chunk_start, chunk_count, - icvp->user_type, icvp->user_sign, - chunk_values, bufsize_step, icvp)) + if (MI_varaccess(operation, icvp->cdfid, icvp->varid, + chunk_start, chunk_count, + icvp->user_type, icvp->user_sign, + chunk_values, bufsize_step, icvp) < 0) { + MI_RETURN(MI_ERROR); + } /* Increment the start counter */ chunk_start[firstdim] += chunk_count[firstdim]; @@ -1478,9 +1512,8 @@ if ((icv_start[i]<0) || (icv_start[i]>=icv_dim_size) || (last_coord<0) || (last_coord>=icv_dim_size) || (icv_count[i]<0)) { - MI_LOG_PKG_ERROR2(MI_ERR_ICV_INVCOORDS, - "Invalid icv coordinates"); - MI_RETURN_ERROR(MI_ERROR); + milog_message(MI_MSG_ICVCOORDS); + MI_RETURN(MI_ERROR); } /* Remove offset */ coord = icv_start[i]-icvp->derv_dim_off[j]; @@ -1577,14 +1610,19 @@ (icvp->imgmaxid!=MI_ERROR) && (icvp->imgminid!=MI_ERROR)) { if (mitranslate_coords(icvp->cdfid, icvp->varid, coords, icvp->imgmaxid, mmcoords) == NULL) - MI_RETURN_ERROR(MI_ERROR); - {MI_CHK_ERR(mivarget1(icvp->cdfid, icvp->imgmaxid, mmcoords, - NC_DOUBLE, NULL, &slice_imgmax))} + MI_RETURN(MI_ERROR); + if (mivarget1(icvp->cdfid, icvp->imgmaxid, mmcoords, + NC_DOUBLE, NULL, &slice_imgmax) < 0) { + MI_RETURN(MI_ERROR); + } if (mitranslate_coords(icvp->cdfid, icvp->varid, coords, - icvp->imgminid, mmcoords) == NULL) - MI_RETURN_ERROR(MI_ERROR); - {MI_CHK_ERR(mivarget1(icvp->cdfid, icvp->imgminid, mmcoords, - NC_DOUBLE, NULL, &slice_imgmin))} + icvp->imgminid, mmcoords) == NULL) { + MI_RETURN(MI_ERROR); + } + if (mivarget1(icvp->cdfid, icvp->imgminid, mmcoords, + NC_DOUBLE, NULL, &slice_imgmin) < 0) { + MI_RETURN(MI_ERROR); + } } /* Get the user real range */ @@ -1734,8 +1772,8 @@ /* Check icv id */ if ((icvid<0) || (icvid>=minc_icv_list_nalloc) || (minc_icv_list[icvid]==NULL)) { - MI_LOG_PKG_ERROR2(MI_ERR_BADICV,"Illegal icv identifier"); - MI_RETURN_ERROR((void *) NULL); + milog_message(MI_MSG_BADICV); + MI_RETURN((void *) NULL); } MI_RETURN(minc_icv_list[icvid]);