diff options
Diffstat (limited to 'src/H5Torder.c')
-rw-r--r-- | src/H5Torder.c | 65 |
1 files changed, 46 insertions, 19 deletions
diff --git a/src/H5Torder.c b/src/H5Torder.c index 02edc11..34dbd8e 100644 --- a/src/H5Torder.c +++ b/src/H5Torder.c @@ -55,7 +55,7 @@ H5T_init_order_interface(void) /*------------------------------------------------------------------------- * Function: H5Tget_order * - * Purpose: Returns the byte order of a data type. + * Purpose: Returns the byte order of a datatype. * * Return: Success: A byte order constant * @@ -64,41 +64,68 @@ H5T_init_order_interface(void) * Programmer: Robb Matzke * Wednesday, January 7, 1998 * - * Modifications: - * Robb Matzke, 22 Dec 1998 - * Also works for derived data types. - * *------------------------------------------------------------------------- */ H5T_order_t H5Tget_order(hid_t type_id) { - H5T_t *dt = NULL; + H5T_t *dt; H5T_order_t ret_value; FUNC_ENTER_API(H5Tget_order, H5T_ORDER_ERROR) H5TRACE1("To", "i", type_id); /* Check args */ - if (NULL == (dt = H5I_object_verify(type_id,H5I_DATATYPE))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, H5T_ORDER_ERROR, "not a data type") - while (dt->shared->parent) - dt = dt->shared->parent; /*defer to parent*/ - if (!H5T_IS_ATOMIC(dt->shared)) - HGOTO_ERROR(H5E_DATATYPE, H5E_UNSUPPORTED, H5T_ORDER_ERROR, "operation not defined for specified data type") + if(NULL == (dt = H5I_object_verify(type_id,H5I_DATATYPE))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, H5T_ORDER_ERROR, "not a datatype") + + /* Get order */ + if((ret_value = H5T_get_order(dt)) == H5T_ORDER_ERROR) + HGOTO_ERROR(H5E_DATATYPE, H5E_UNSUPPORTED, H5T_ORDER_ERROR, "cant't get order for specified datatype") + +done: + FUNC_LEAVE_API(ret_value) +} /* end H5Tget_order() */ + + +/*------------------------------------------------------------------------- + * Function: H5T_get_order + * + * Purpose: Returns the byte order of a datatype. + * + * Return: Success: A byte order constant + * Failure: H5T_ORDER_ERROR (Negative) + * + * Programmer: Quincey Koziol + * Wednesday, October 17, 2007 + * + *------------------------------------------------------------------------- + */ +H5T_order_t +H5T_get_order(const H5T_t *dt) +{ + H5T_order_t ret_value; /* Return value */ + + FUNC_ENTER_NOAPI(H5T_get_order, H5T_ORDER_ERROR) + + /*defer to parent*/ + while(dt->shared->parent) + dt = dt->shared->parent; + if(!H5T_IS_ATOMIC(dt->shared)) + HGOTO_ERROR(H5E_DATATYPE, H5E_UNSUPPORTED, H5T_ORDER_ERROR, "operation not defined for specified datatype") /* Order */ ret_value = dt->shared->u.atomic.order; done: - FUNC_LEAVE_API(ret_value) -} + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5T_get_order() */ /*------------------------------------------------------------------------- * Function: H5Tset_order * - * Purpose: Sets the byte order for a data type. + * Purpose: Sets the byte order for a datatype. * * Return: Non-negative on success/Negative on failure * @@ -107,7 +134,7 @@ done: * * Modifications: * Robb Matzke, 22 Dec 1998 - * Also works for derived data types. + * Also works for derived datatypes. * *------------------------------------------------------------------------- */ @@ -122,9 +149,9 @@ H5Tset_order(hid_t type_id, H5T_order_t order) /* Check args */ if (NULL == (dt = H5I_object_verify(type_id,H5I_DATATYPE))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type") + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype") if (H5T_STATE_TRANSIENT!=dt->shared->state) - HGOTO_ERROR(H5E_ARGS, H5E_CANTINIT, FAIL, "data type is read-only") + HGOTO_ERROR(H5E_ARGS, H5E_CANTINIT, FAIL, "datatype is read-only") if (order < H5T_ORDER_LE || order > H5T_ORDER_NONE) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "illegal byte order") if (H5T_ENUM==dt->shared->type && dt->shared->u.enumer.nmembs>0) @@ -132,7 +159,7 @@ H5Tset_order(hid_t type_id, H5T_order_t order) while (dt->shared->parent) dt = dt->shared->parent; /*defer to parent*/ if (!H5T_IS_ATOMIC(dt->shared)) - HGOTO_ERROR(H5E_DATATYPE, H5E_UNSUPPORTED, FAIL, "operation not defined for specified data type") + HGOTO_ERROR(H5E_DATATYPE, H5E_UNSUPPORTED, FAIL, "operation not defined for specified datatype") /* Commit */ dt->shared->u.atomic.order = order; |