/*------------------------------------------------------------------------- * Copyright (C) 1997 National Center for Supercomputing Applications. * All rights reserved. * *------------------------------------------------------------------------- * * Created: H5G.c * Jul 18 1997 * Robb Matzke * * Purpose: * * Modifications: * *------------------------------------------------------------------------- */ #include #include "hdf5.h" /* Packages needed by this file... */ #include "H5Gprivate.h" /* PRIVATE PROTOTYPES */ /*------------------------------------------------------------------------- * Function: H5G_decode_vec * * Purpose: Same as H5G_decode() except it does it for an array of * symbol table entries. * * Return: Success: 0, with *pp pointing to the first byte * after the last symbol. * * Failure: -1 * * Programmer: Robb Matzke * robb@maya.nuance.com * Jul 18 1997 * * Modifications: * *------------------------------------------------------------------------- */ herr_t H5G_decode_vec (hdf5_file_t *f, uint8 **pp, H5G_entry_t *ent, intn n) { intn i; for (i=0; iname_off); H5F_decode_offset (f, *pp, ent->header); UINT32DECODE (*pp, ent->type); switch (ent->type) { case H5G_NOTHING_CACHED: break; case H5G_CACHED_SDATA: UINT32DECODE (*pp, ent->cache.sdata.nt); UINT32DECODE (*pp, ent->cache.sdata.ndim); UINT32DECODE (*pp, ent->cache.sdata.dim[0]); UINT32DECODE (*pp, ent->cache.sdata.dim[1]); UINT32DECODE (*pp, ent->cache.sdata.dim[2]); UINT32DECODE (*pp, ent->cache.sdata.dim[3]); break; case H5G_CACHED_SYMTAB: UINT32DECODE (*pp, ent->cache.symtab.btree); UINT32DECODE (*pp, ent->cache.symtab.heap); break; default: abort(); } *pp = p_ret + 2*SIZEOF_OFFSET(f) + 4 + 24; return 0; } /*------------------------------------------------------------------------- * Function: H5G_encode_vec * * Purpose: Same as H5G_encode() except it does it for an array of * symbol table entries. * * Return: Success: 0, with *pp pointing to the first byte * after the last symbol. * * Failure: -1 * * Programmer: Robb Matzke * robb@maya.nuance.com * Jul 18 1997 * * Modifications: * *------------------------------------------------------------------------- */ herr_t H5G_encode_vec (hdf5_file_t *f, uint8 **pp, H5G_entry_t *ent, intn n) { intn i; for (i=0; iname_off); H5F_encode_offset (f, *pp, ent->header); UINT32ENCODE (*pp, ent->type); switch (ent->type) { case H5G_NOTHING_CACHED: break; case H5G_CACHED_SDATA: UINT32ENCODE (*pp, ent->cache.sdata.nt); UINT32ENCODE (*pp, ent->cache.sdata.ndim); UINT32ENCODE (*pp, ent->cache.sdata.dim[0]); UINT32ENCODE (*pp, ent->cache.sdata.dim[1]); UINT32ENCODE (*pp, ent->cache.sdata.dim[2]); UINT32ENCODE (*pp, ent->cache.sdata.dim[3]); break; case H5G_CACHED_SYMTAB: UINT32ENCODE (*pp, ent->cache.symtab.btree); UINT32ENCODE (*pp, ent->cache.symtab.heap); break; default: abort(); } *pp = p_ret + 2*SIZEOF_OFFSET(f) + 4 + 24; return 0; }