/* * Copyright (C) 1998 NCSA * All rights reserved. * * Programmer: Quincey Koziol * Tuesday, November 10, 1998 * * Purpose: "None" selection data space I/O functions. */ #include #include #include #include #include #include /* Interface initialization */ #define PABLO_MASK H5Snone_mask #define INTERFACE_INIT NULL static intn interface_initialize_g = 0; /*-------------------------------------------------------------------------- NAME H5S_none_select_serialize PURPOSE Serialize the current selection into a user-provided buffer. USAGE herr_t H5S_none_select_serialize(space, buf) H5S_t *space; IN: Dataspace pointer of selection to serialize uint8 *buf; OUT: Buffer to put serialized selection into RETURNS Non-negative on success/Negative on failure DESCRIPTION Serializes the current element selection into a buffer. (Primarily for storing on disk). GLOBAL VARIABLES COMMENTS, BUGS, ASSUMPTIONS EXAMPLES REVISION LOG --------------------------------------------------------------------------*/ herr_t H5S_none_select_serialize (const H5S_t *space, uint8_t *buf) { herr_t ret_value=FAIL; /* return value */ FUNC_ENTER (H5S_none_select_serialize, FAIL); assert(space); /* Store the preamble information */ UINT32ENCODE(buf, (uint32_t)space->select.type); /* Store the type of selection */ UINT32ENCODE(buf, (uint32_t)1); /* Store the version number */ UINT32ENCODE(buf, (uint32_t)0); /* Store the un-used padding */ UINT32ENCODE(buf, (uint32_t)0); /* Store the additional information length */ /* Set success */ ret_value=SUCCEED; FUNC_LEAVE (ret_value); } /* H5S_none_select_serialize() */ /*-------------------------------------------------------------------------- NAME H5S_none_select_deserialize PURPOSE Deserialize the current selection from a user-provided buffer. USAGE herr_t H5S_none_select_deserialize(space, buf) H5S_t *space; IN/OUT: Dataspace pointer to place selection into uint8 *buf; IN: Buffer to retrieve serialized selection from RETURNS Non-negative on success/Negative on failure DESCRIPTION Deserializes the current selection into a buffer. (Primarily for retrieving from disk). GLOBAL VARIABLES COMMENTS, BUGS, ASSUMPTIONS EXAMPLES REVISION LOG --------------------------------------------------------------------------*/ herr_t H5S_none_select_deserialize (H5S_t *space, const uint8_t UNUSED *buf) { herr_t ret_value=FAIL; /* return value */ FUNC_ENTER (H5S_none_select_deserialize, FAIL); assert(space); /* Change to "none" selection */ if((ret_value=H5S_select_none(space))<0) { HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection"); } /* end if */ done: FUNC_LEAVE (ret_value); } /* H5S_none_select_deserialize() */ /*-------------------------------------------------------------------------- NAME H5S_none_select_iterate PURPOSE Iterate over a none selection, calling a user's function for each element. (i.e. the user's function is not called because there are zero elements selected) USAGE herr_t H5S_none_select_iterate(buf, type_id, space, operator, operator_data) void *buf; IN/OUT: Buffer containing elements to iterate over hid_t type_id; IN: Datatype ID of BUF array. H5S_t *space; IN: Dataspace object containing selection to iterate over H5D_operator_t operator; IN: Function pointer to the routine to be called for each element in BUF iterated over. void *operator_data; IN/OUT: Pointer to any user-defined data associated with the operation. RETURNS Returns success (0). DESCRIPTION GLOBAL VARIABLES COMMENTS, BUGS, ASSUMPTIONS EXAMPLES REVISION LOG --------------------------------------------------------------------------*/ herr_t H5S_none_select_iterate(void *buf, hid_t type_id, H5S_t *space, H5D_operator_t operator, void UNUSED *operator_data) { herr_t ret_value=SUCCEED; /* return value */ FUNC_ENTER (H5S_none_select_iterate, FAIL); assert(buf); assert(space); assert(operator); assert(H5I_DATATYPE == H5I_get_type(type_id)); FUNC_LEAVE (ret_value); } /* H5S_hyper_select_iterate() */