HDF5  1.12.0
Data Structures | Macros | Typedefs | Functions
H5Rpkg.h File Reference
#include "H5Rprivate.h"
#include "H5Fprivate.h"
#include "H5Gprivate.h"
#include "H5Oprivate.h"
#include "H5Sprivate.h"

Go to the source code of this file.

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
 

Macros

#define H5R_IS_EXTERNAL   0x1 /* Set when encoding reference to external file */
 
#define H5R_REF_FILENAME(x)   ((x)->info.obj.filename)
 
#define H5R_REF_ATTRNAME(x)   ((x)->info.attr.name)
 
#define H5R_ENCODE_HEADER_SIZE   (2 * H5_SIZEOF_UINT8_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)
 

Macro Definition Documentation

◆ H5R_ENCODE_HEADER_SIZE

#define H5R_ENCODE_HEADER_SIZE   (2 * H5_SIZEOF_UINT8_T)

◆ H5R_IS_EXTERNAL

#define H5R_IS_EXTERNAL   0x1 /* Set when encoding reference to external file */

◆ H5R_REF_ATTRNAME

#define H5R_REF_ATTRNAME (   x)    ((x)->info.attr.name)

◆ H5R_REF_FILENAME

#define H5R_REF_FILENAME (   x)    ((x)->info.obj.filename)

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()

H5_DLL herr_t H5R__copy ( const H5R_ref_priv_t src_ref,
H5R_ref_priv_t dst_ref 
)

◆ H5R__create_attr()

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 
)

◆ H5R__create_object()

H5_DLL herr_t H5R__create_object ( const H5O_token_t obj_token,
size_t  token_size,
H5R_ref_priv_t ref 
)

◆ H5R__create_region()

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 
)

◆ 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()

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 
)

◆ 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()

H5_DLL herr_t H5R__destroy ( H5R_ref_priv_t ref)

◆ 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

◆ 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()

H5_DLL htri_t H5R__equal ( const H5R_ref_priv_t ref1,
const H5R_ref_priv_t ref2 
)

◆ 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()

H5_DLL hid_t H5R__get_loc_id ( const H5R_ref_priv_t ref)

◆ H5R__get_obj_token()

H5_DLL herr_t H5R__get_obj_token ( const H5R_ref_priv_t ref,
H5O_token_t obj_token,
size_t token_size 
)

◆ H5R__get_region()

H5_DLL herr_t H5R__get_region ( const H5R_ref_priv_t ref,
H5S_t space 
)

◆ H5R__get_type()

H5_DLL H5R_type_t H5R__get_type ( const H5R_ref_priv_t ref)

◆ H5R__reopen_file()

H5_DLL hid_t H5R__reopen_file ( H5R_ref_priv_t ref,
hid_t  fapl_id 
)

◆ H5R__set_loc_id()

H5_DLL herr_t H5R__set_loc_id ( H5R_ref_priv_t ref,
hid_t  id,
hbool_t  inc_ref,
hbool_t  app_ref 
)

◆ H5R__set_obj_token()

H5_DLL herr_t H5R__set_obj_token ( H5R_ref_priv_t ref,
const H5O_token_t obj_token,
size_t  token_size 
)