diff options
Diffstat (limited to 'src/H5Oprivate.h')
-rw-r--r-- | src/H5Oprivate.h | 51 |
1 files changed, 26 insertions, 25 deletions
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h index 10b6c31..ead851e 100644 --- a/src/H5Oprivate.h +++ b/src/H5Oprivate.h @@ -84,21 +84,15 @@ typedef struct H5O_copy_t { /* Header message IDs */ #define H5O_NULL_ID 0x0000 /* Null Message. */ #define H5O_SDSPACE_ID 0x0001 /* Simple Dataspace Message. */ -#ifdef H5_GROUP_REVISION #define H5O_LINFO_ID 0x0002 /* Link Info Message. */ -#endif /* H5_GROUP_REVISION */ #define H5O_DTYPE_ID 0x0003 /* Datatype Message. */ #define H5O_FILL_ID 0x0004 /* Fill Value Message. (Old) */ #define H5O_FILL_NEW_ID 0x0005 /* Fill Value Message. (New) */ -#ifdef H5_GROUP_REVISION #define H5O_LINK_ID 0x0006 /* Link Message. */ -#endif /* H5_GROUP_REVISION */ #define H5O_EFL_ID 0x0007 /* External File List Message */ #define H5O_LAYOUT_ID 0x0008 /* Data Storage Layout Message. */ #define H5O_BOGUS_ID 0x0009 /* "Bogus" Message. */ -#ifdef H5_GROUP_REVISION #define H5O_GINFO_ID 0x000a /* Group Info Message. */ -#endif /* H5_GROUP_REVISION */ #define H5O_PLINE_ID 0x000b /* Filter pipeline message. */ #define H5O_ATTR_ID 0x000c /* Attribute Message. */ #define H5O_NAME_ID 0x000d /* Object name message. */ @@ -108,15 +102,19 @@ typedef struct H5O_copy_t { #define H5O_STAB_ID 0x0011 /* Symbol table message. */ #define H5O_MTIME_NEW_ID 0x0012 /* Modification time message. (New) */ -#ifdef H5_GROUP_REVISION /* * Link Info Message. + * (Contains dynamic information about links in a group) * (Data structure in memory) */ typedef struct H5O_linfo_t { - hsize_t nlinks; /* Number of links in the group */ + hsize_t nlinks; /* Number of links in the group */ + int64_t min_corder; /* Min. creation order value for group */ + int64_t max_corder; /* Max. creation order value for group */ + haddr_t link_fheap_addr; /* Address of fractal heap for storing "dense" links */ + haddr_t name_bt2_addr; /* Address of v2 B-tree for indexing names of links */ + haddr_t corder_bt2_addr; /* Address of v2 B-tree for indexing creation order values of links */ } H5O_linfo_t; -#endif /* H5_GROUP_REVISION */ /* * Fill Value Message. (Old) @@ -161,8 +159,9 @@ typedef struct H5O_link_ud_t { } H5O_link_ud_t; typedef struct H5O_link_t { - H5L_link_t type; /* Type of link */ - time_t ctime; /* Time link was createed */ + H5L_type_t type; /* Type of link */ + hbool_t corder_valid; /* Creation order for link is valid (not stored) */ + int64_t corder; /* Creation order for link (stored if it's valid) */ H5T_cset_t cset; /* Character set of link name */ char *name; /* Link name */ union { @@ -244,14 +243,20 @@ typedef struct H5O_bogus_t { /* * Group info message. + * (Contains static information about a group) * (Data structure in memory) */ typedef struct H5O_ginfo_t { - size_t lheap_size_hint; /* Local heap size hint */ - unsigned max_compact; /* Maximum # of compact links */ - unsigned min_dense; /* Minimum # of "dense" links */ - unsigned est_num_entries; /* Estimated # of entries in group */ - unsigned est_name_len; /* Estimated length of entry name */ + /* "Old" format group info (not stored) */ + uint32_t lheap_size_hint; /* Local heap size hint */ + + /* "New" format group info (stored) */ + hbool_t track_corder; /* Are creation order values tracked on links? */ + hbool_t index_corder; /* Are creation order values indexed on links? */ + uint32_t max_compact; /* Maximum # of compact links */ + uint32_t min_dense; /* Minimum # of "dense" links */ + uint32_t est_num_entries; /* Estimated # of entries in group */ + uint32_t est_name_len; /* Estimated length of entry name */ } H5O_ginfo_t; /* @@ -355,11 +360,13 @@ H5_DLL herr_t H5O_remove_op(const H5O_loc_t *loc, unsigned type_id, int sequence H5O_operator_t op, void *op_data, hbool_t adj_link, hid_t dxpl_id); H5_DLL herr_t H5O_reset(unsigned type_id, void *native); H5_DLL void *H5O_free(unsigned type_id, void *mesg); -H5_DLL herr_t H5O_encode(H5F_t *f, unsigned char *buf, void *obj, unsigned type_id); -H5_DLL void* H5O_decode(H5F_t *f, const unsigned char *buf, unsigned type_id); +H5_DLL herr_t H5O_encode(H5F_t *f, unsigned char *buf, const void *obj, unsigned type_id); +H5_DLL void* H5O_decode(H5F_t *f, hid_t dxpl_id, const unsigned char *buf, + unsigned type_id); H5_DLL void *H5O_copy(unsigned type_id, const void *mesg, void *dst); H5_DLL size_t H5O_raw_size(unsigned type_id, const H5F_t *f, const void *mesg); -H5_DLL size_t H5O_mesg_size(unsigned type_id, const H5F_t *f, const void *mesg); +H5_DLL size_t H5O_mesg_size(unsigned type_id, const H5F_t *f, const void *mesg, + size_t extra_raw); H5_DLL herr_t H5O_get_share(unsigned type_id, H5F_t *f, const void *mesg, H5O_shared_t *share); H5_DLL herr_t H5O_delete(H5F_t *f, hid_t dxpl_id, haddr_t addr); H5_DLL herr_t H5O_get_info(H5O_loc_t *loc, H5O_stat_t *ostat, hid_t dxpl_id); @@ -378,12 +385,6 @@ H5_DLL herr_t H5O_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream, in int fwidth); /* - * These functions operate on links - */ -H5_DLL void *H5O_link_copy(const void *_mesg, void *_dest, unsigned update_flags); - - -/* * These functions operate on object locations */ H5_DLL herr_t H5O_loc_reset(H5O_loc_t *loc); |