src/H5VLcallback.c
/*-------------------------------------------------------------------------
 * Function:    H5VL_blob_specific
 *
 * Purpose: Specific operation on blobs through the VOL
 *
 * Return:      Success:    Non-negative
 *              Failure:    Negative
 *
 *-------------------------------------------------------------------------
 */
H5VL_blob_specific
Purpose: Specific operation on blobs through the VOL

Non-negative
Failure:    Negative
H5VL_blob_specific Purpose : Specific operation on blobs through the VOL Non - negative Failure : Negative
herr_t
H5VL_blob_specific(const H5VL_object_t *vol_obj, void *blob_id, H5VL_blob_specific_t specific_type, ...)
{
    va_list arguments;                 
    hbool_t arg_started     = FALSE;   
    hbool_t vol_wrapper_set = FALSE;   
    herr_t  ret_value       = SUCCEED; 
    FUNC_ENTER_NOAPI(FAIL)
    HDassert(vol_obj);
    HDassert(blob_id);
    if (H5VL_set_vol_wrapper(vol_obj) < 0)
        HGOTO_ERROR(H5E_VOL, H5E_CANTSET, FAIL, "can't set VOL wrapper info")
    vol_wrapper_set = TRUE;
    HDva_start(arguments, specific_type);
    arg_started = TRUE;
    if ((ret_value = H5VL__blob_specific(vol_obj->data, vol_obj->connector->cls, blob_id, specific_type,
                                         arguments)) < 0)
        HGOTO_ERROR(H5E_VOL, H5E_CANTOPERATE, FAIL, "unable to execute blob specific callback")
done:
    if (arg_started)
        HDva_end(arguments);
    if (vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
        HDONE_ERROR(H5E_VOL, H5E_CANTRESET, FAIL, "can't reset VOL wrapper info")
    FUNC_LEAVE_NOAPI(ret_value)
}
herr_t H5VL_blob_specific ( const H5VL_object_t * vol_obj , void * blob_id , H5VL_blob_specific_t specific_type , ... ) { va_list arguments ; hbool_t arg_started = FALSE ; hbool_t vol_wrapper_set = FALSE ; herr_t ret_value = SUCCEED ; FUNC_ENTER_NOAPI ( FAIL ) HDassert ( vol_obj ) ; HDassert ( blob_id ) ; if ( H5VL_set_vol_wrapper ( vol_obj ) < 0 ) HGOTO_ERROR ( H5E_VOL , H5E_CANTSET , FAIL , " " ) vol_wrapper_set = TRUE ; HDva_start ( arguments , specific_type ) ; arg_started = TRUE ; if ( ( ret_value = H5VL__blob_specific ( vol_obj -> data , vol_obj -> connector -> cls , blob_id , specific_type , arguments ) ) < 0 ) HGOTO_ERROR ( H5E_VOL , H5E_CANTOPERATE , FAIL , " " ) done : if ( arg_started ) HDva_end ( arguments ) ; if ( vol_wrapper_set && H5VL_reset_vol_wrapper ( ) < 0 ) HDONE_ERROR ( H5E_VOL , H5E_CANTRESET , FAIL , " " ) FUNC_LEAVE_NOAPI ( ret_value ) }
Function:    H5VL_blob_specific
 Purpose: Specific operation on blobs through the VOL
Function : H5VL_blob_specific Purpose : Specific operation on blobs through the VOL
/* Argument list passed from the API call */ /* Whether the va_list has been started */ /* Whether the VOL object wrapping context was set up */ /* Return value */ /* Sanity check */ /* Set wrapper info in API context */ /* Call the corresponding internal VOL routine */ /* End access to the va_list, if we started it */ /* Reset object wrapping info in API context */