test/nb_vol_conn.c
/*-------------------------------------------------------------------------
 * Function:    H5VL_nonblock_link_copy
 *
 * Purpose:     Renames an object within an HDF5 container and copies it to a new
 *              group.  The original name SRC is unlinked from the group graph
 *              and then inserted with the new name DST (which can specify a
 *              new path for the object) as an atomic operation. The names
 *              are interpreted relative to SRC_LOC_ID and
 *              DST_LOC_ID, which are either file IDs or group ID.
 *
 * Return:      Success:    0
 *              Failure:    -1
 *
 *-------------------------------------------------------------------------
 */
H5VL_nonblock_link_copy
Purpose:     Renames an object within an HDF5 container and copies it to a new
group.  The original name SRC is unlinked from the group graph
and then inserted with the new name DST (which can specify a
new path for the object) as an atomic operation. The names
are interpreted relative to SRC_LOC_ID and
DST_LOC_ID, which are either file IDs or group ID.


H5VL_nonblock_link_copy Purpose : Renames an object within an HDF5 container and copies it to a new group . The original name SRC is unlinked from the group graph and then inserted with the new name DST ( which can specify a new path for the object ) as an atomic operation . The names are interpreted relative to SRC_LOC_ID and DST_LOC_ID which are either file IDs or group ID .
static herr_t
H5VL_nonblock_link_copy(void *src_obj, const H5VL_loc_params_t *loc_params1, void *dst_obj,
                        const H5VL_loc_params_t *loc_params2, hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id,
                        void **req)
{
    H5VL_nonblock_t *o_src        = (H5VL_nonblock_t *)src_obj;
    H5VL_nonblock_t *o_dst        = (H5VL_nonblock_t *)dst_obj;
    hid_t            under_vol_id = -1;
    herr_t           ret_value;
#ifdef ENABLE_NONBLOCK_LOGGING
    printf("------- NON-BLOCKING VOL LINK Copy\n");
#endif
    if (o_src)
        under_vol_id = o_src->under_vol_id;
    else if (o_dst)
        under_vol_id = o_dst->under_vol_id;
    assert(under_vol_id > 0);
    ret_value =
        H5VLlink_copy((o_src ? o_src->under_object : NULL), loc_params1, (o_dst ? o_dst->under_object : NULL),
                      loc_params2, under_vol_id, lcpl_id, lapl_id, dxpl_id, req);
    if (req && *req)
        *req = H5VL_nonblock_new_obj(*req, under_vol_id);
    return ret_value;
}
static herr_t H5VL_nonblock_link_copy ( void * src_obj , const H5VL_loc_params_t * loc_params1 , void * dst_obj , const H5VL_loc_params_t * loc_params2 , hid_t lcpl_id , hid_t lapl_id , hid_t dxpl_id , void * * req ) { H5VL_nonblock_t * o_src = ( H5VL_nonblock_t * ) src_obj ; H5VL_nonblock_t * o_dst = ( H5VL_nonblock_t * ) dst_obj ; hid_t under_vol_id = -1 ; herr_t ret_value ; #ifdef ENABLE_NONBLOCK_LOGGING printf ( " \n " ) ; #endif if ( o_src ) under_vol_id = o_src -> under_vol_id ; else if ( o_dst ) under_vol_id = o_dst -> under_vol_id ; assert ( under_vol_id > 0 ) ; ret_value = H5VLlink_copy ( ( o_src ? o_src -> under_object : NULL ) , loc_params1 , ( o_dst ? o_dst -> under_object : NULL ) , loc_params2 , under_vol_id , lcpl_id , lapl_id , dxpl_id , req ) ; if ( req && * req ) * req = H5VL_nonblock_new_obj ( * req , under_vol_id ) ; return ret_value ; }
Function:    H5VL_nonblock_link_copy
 Purpose:     Renames an object within an HDF5 container and copies it to a new
              group.
Function : H5VL_nonblock_link_copy Purpose : Renames an object within an HDF5 container and copies it to a new group .
/* Retrieve the "under" VOL id */ /* Check for async request */