HDF5  1.12.0
H5Rpkg.h File Reference

Data Structures

struct  H5R_ref_priv_obj_t
 
struct  H5R_ref_priv_reg_t
 
struct  H5R_ref_priv_attr_t
 
struct  H5R_ref_priv_t
 

Typedefs

typedef struct H5R_ref_priv_obj_t H5R_ref_priv_obj_t
 
typedef struct H5R_ref_priv_reg_t H5R_ref_priv_reg_t
 
typedef struct H5R_ref_priv_attr_t H5R_ref_priv_attr_t
 
typedef struct H5R_ref_priv_t H5R_ref_priv_t
 

Functions

H5_DLL herr_t H5R__create_object (const H5O_token_t *obj_token, size_t token_size, H5R_ref_priv_t *ref)
 
H5_DLL herr_t H5R__create_region (const H5O_token_t *obj_token, size_t token_size, H5S_t *space, H5R_ref_priv_t *ref)
 
H5_DLL herr_t H5R__create_attr (const H5O_token_t *obj_token, size_t token_size, const char *attr_name, H5R_ref_priv_t *ref)
 
H5_DLL herr_t H5R__destroy (H5R_ref_priv_t *ref)
 
H5_DLL herr_t H5R__set_loc_id (H5R_ref_priv_t *ref, hid_t id, hbool_t inc_ref, hbool_t app_ref)
 
H5_DLL hid_t H5R__get_loc_id (const H5R_ref_priv_t *ref)
 
H5_DLL hid_t H5R__reopen_file (H5R_ref_priv_t *ref, hid_t fapl_id)
 
H5_DLL H5R_type_t H5R__get_type (const H5R_ref_priv_t *ref)
 
H5_DLL htri_t H5R__equal (const H5R_ref_priv_t *ref1, const H5R_ref_priv_t *ref2)
 
H5_DLL herr_t H5R__copy (const H5R_ref_priv_t *src_ref, H5R_ref_priv_t *dst_ref)
 
H5_DLL herr_t H5R__get_obj_token (const H5R_ref_priv_t *ref, H5O_token_t *obj_token, size_t *token_size)
 
H5_DLL herr_t H5R__set_obj_token (H5R_ref_priv_t *ref, const H5O_token_t *obj_token, size_t token_size)
 
H5_DLL herr_t H5R__get_region (const H5R_ref_priv_t *ref, H5S_t *space)
 
H5_DLL ssize_t H5R__get_file_name (const H5R_ref_priv_t *ref, char *buf, size_t size)
 
H5_DLL ssize_t H5R__get_attr_name (const H5R_ref_priv_t *ref, char *buf, size_t size)
 
H5_DLL herr_t H5R__encode (const char *filename, const H5R_ref_priv_t *ref, unsigned char *buf, size_t *nalloc, unsigned flags)
 
H5_DLL herr_t H5R__decode (const unsigned char *buf, size_t *nbytes, H5R_ref_priv_t *ref)
 
H5_DLL herr_t H5R__encode_heap (H5F_t *f, unsigned char *buf, size_t *nalloc, const unsigned char *data, size_t data_size)
 
H5_DLL herr_t H5R__decode_heap (H5F_t *f, const unsigned char *buf, size_t *nbytes, unsigned char **data_ptr, size_t *data_size)
 
H5_DLL herr_t H5R__free_heap (H5F_t *f, const unsigned char *buf, size_t nbytes)
 
H5_DLL herr_t H5R__decode_token_compat (H5VL_object_t *vol_obj, H5I_type_t type, H5R_type_t ref_type, const unsigned char *buf, H5O_token_t *obj_token)
 
H5_DLL herr_t H5R__encode_token_obj_compat (const H5O_token_t *obj_token, size_t token_size, unsigned char *buf, size_t *nalloc)
 
H5_DLL herr_t H5R__decode_token_obj_compat (const unsigned char *buf, size_t *nbytes, H5O_token_t *obj_token, size_t token_size)
 
H5_DLL herr_t H5R__encode_token_region_compat (H5F_t *f, const H5O_token_t *obj_token, size_t token_size, H5S_t *space, unsigned char *buf, size_t *nalloc)
 
H5_DLL herr_t H5R__decode_token_region_compat (H5F_t *f, const unsigned char *buf, size_t *nbytes, H5O_token_t *obj_token, size_t token_size, H5S_t **space_ptr)
 

Typedef Documentation

◆ H5R_ref_priv_attr_t

◆ H5R_ref_priv_obj_t

◆ H5R_ref_priv_reg_t

◆ H5R_ref_priv_t

Function Documentation

◆ H5R__copy()

◆ H5R__create_attr()

◆ H5R__create_object()

◆ H5R__create_region()

◆ H5R__decode()

H5_DLL herr_t H5R__decode ( const unsigned char *  buf,
size_t *  nbytes,
H5R_ref_priv_t ref 
)

◆ H5R__decode_heap()

H5_DLL herr_t H5R__decode_heap ( H5F_t f,
const unsigned char *  buf,
size_t *  nbytes,
unsigned char **  data_ptr,
size_t *  data_size 
)

◆ H5R__decode_token_compat()

◆ H5R__decode_token_obj_compat()

H5_DLL herr_t H5R__decode_token_obj_compat ( const unsigned char *  buf,
size_t *  nbytes,
H5O_token_t obj_token,
size_t  token_size 
)

◆ H5R__decode_token_region_compat()

H5_DLL herr_t H5R__decode_token_region_compat ( H5F_t f,
const unsigned char *  buf,
size_t *  nbytes,
H5O_token_t obj_token,
size_t  token_size,
H5S_t **  space_ptr 
)

◆ H5R__destroy()

◆ H5R__encode()

H5_DLL herr_t H5R__encode ( const char *  filename,
const H5R_ref_priv_t ref,
unsigned char *  buf,
size_t *  nalloc,
unsigned  flags 
)

Encoding format: | Reference type (8 bits) | Flags (8 bits) | Token (token size) | | | |-—> H5R_IS_EXTERNAL: File info | |-—> H5R_DATASET_REGION2: Serialized selection | |-—> H5R_ATTR: Attribute name len + name

TODO Encode VOL info When we have a better way of storing blobs, we should add support for referencing files in external VOLs. There are currently multiple limitations:

  • avoid duplicating VOL info on each reference
  • must query terminal VOL connector to avoid passthrough confusion

References flags, HDassert(), ret_value, and H5R_ref_priv_t::type.

Referenced by H5R__create_attr(), H5R__create_object(), and H5R__create_region().

◆ H5R__encode_heap()

H5_DLL herr_t H5R__encode_heap ( H5F_t f,
unsigned char *  buf,
size_t *  nalloc,
const unsigned char *  data,
size_t  data_size 
)

◆ H5R__encode_token_obj_compat()

H5_DLL herr_t H5R__encode_token_obj_compat ( const H5O_token_t obj_token,
size_t  token_size,
unsigned char *  buf,
size_t *  nalloc 
)

◆ H5R__encode_token_region_compat()

H5_DLL herr_t H5R__encode_token_region_compat ( H5F_t f,
const H5O_token_t obj_token,
size_t  token_size,
H5S_t space,
unsigned char *  buf,
size_t *  nalloc 
)

◆ H5R__equal()

◆ H5R__free_heap()

H5_DLL herr_t H5R__free_heap ( H5F_t f,
const unsigned char *  buf,
size_t  nbytes 
)

◆ H5R__get_attr_name()

H5_DLL ssize_t H5R__get_attr_name ( const H5R_ref_priv_t ref,
char *  buf,
size_t  size 
)

◆ H5R__get_file_name()

H5_DLL ssize_t H5R__get_file_name ( const H5R_ref_priv_t ref,
char *  buf,
size_t  size 
)

◆ H5R__get_loc_id()

◆ H5R__get_obj_token()

◆ H5R__get_region()

◆ H5R__get_type()

◆ H5R__reopen_file()

◆ H5R__set_loc_id()

◆ H5R__set_obj_token()