Sets the memory manager for variable-length datatype allocation in H5Dread and H5Dvlen_reclaim
Procedure:
H5P_SET_VLEN_MEM_MANAGER ( plist, alloc, alloc_info, free, free_info )
Signature:
herr_t H5Pset_vlen_mem_manager(hid_t plist,
H5MM_allocate_t alloc,
void *alloc_info,
H5MM_free_t free,
void *free_info
)
Parameters:
hid_t plist | IN: Identifier for the dataset transfer property list |
H5MM_allocate_t alloc | IN: User's allocate routine, or NULL for system malloc |
void *alloc_info | IN: Extra parameter for user's allocation routine Contents are ignored if preceding parameter is NULL |
H5MM_free_t free | IN: User's free routine, or NULL for system free |
void *free_info | IN: Extra parameter for user's free routine. Contents are ignored if preceding parameter is NULL |
Description:
H5P_SET_VLEN_MEM_MANAGER sets the memory manager for variable-length datatype allocation in H5D_READ
and free in H5D_VLEN_RECLAIM
.
The alloc
and free
parameters identify the memory management routines to be used. If the user has defined custom memory management routines, alloc
and/or free
should be set to make those routine calls (i.e., the name of the routine is used as the value of the parameter); if the user prefers to use the system's malloc
and/or free
, the alloc
and free
parameters, respectively, should be set to NULL
The prototypes for these user-defined functions would appear as follows:
typedef void *(*H5MM_allocate_t)(size_t size, void *alloc_info) ;
typedef void (*H5MM_free_t)(void *mem, void *free_info) ;
The alloc_info
and free_info
parameters can be used to pass along any required information to the user's memory management routines.
In summary, if the user has defined custom memory management routines, the name(s) of the routines are passed in the alloc
and free
parameters and the custom routines' parameters are passed in the alloc_info
and free_info
parameters. If the user wishes to use the system malloc
and free
functions, the alloc
and/or free
parameters are set to NULL
and the alloc_info
and free_info
parameters are ignored.
Returns:
Returns a non-negative value if successful; otherwise returns a negative value.
Example:
History:
--- Last Modified: August 09, 2019 | 02:30 PM