Page tree

 

JAVA

FORTRAN

C++

C

 

Link

H5P_SET_VLEN_MEM_MANAGER

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
    )
  

NONE

Parameters:
hid_t plistIN: Identifier for the dataset transfer property list
H5MM_allocate_t alloc    IN: User's allocate routine, or NULL for system malloc
void *alloc_infoIN: Extra parameter for user's allocation routine
Contents are ignored if preceding parameter is NULL
H5MM_free_t freeIN: User's free routine, or NULL for system free
void *free_infoIN: 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