[svn-r757] Added code for object references.

This commit is contained in:
Quincey Koziol 1998-10-13 16:28:53 -05:00
parent 6fd7f81615
commit 5389806ce8
14 changed files with 1152 additions and 530 deletions

View File

@ -1,3 +1,67 @@
H5.o: \
H5.c \
H5private.h \
H5public.h \
H5config.h \
H5ACprivate.h \
H5ACpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Ipublic.h \
H5Dpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5Iprivate.h \
H5MMprivate.h \
H5MMpublic.h \
H5Pprivate.h \
H5Ppublic.h \
H5Zpublic.h \
H5Rpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h
H5A.o: \
H5A.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Dprivate.h \
H5Gprivate.h \
H5Gpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5MMprivate.h \
H5MMpublic.h \
H5Pprivate.h \
H5Ppublic.h \
H5Apkg.h \
H5Aprivate.h
H5AC.o: \
H5AC.c \
H5private.h \
@ -29,6 +93,14 @@ H5B.o: \
H5MFprivate.h \
H5MFpublic.h \
H5MMprivate.h
H5E.o: \
H5E.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Eprivate.h
H5Farray.o: \
H5Farray.c \
H5private.h \
@ -114,6 +186,34 @@ H5Flow.o: \
H5Dpublic.h \
H5MMprivate.h \
H5MMpublic.h
H5Fmpio.o: \
H5Fmpio.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Dprivate.h \
H5Dpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5MMprivate.h \
H5MMpublic.h
H5Fsec2.o: \
H5Fsec2.c \
H5private.h \
@ -204,6 +304,53 @@ H5Gnode.o: \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h
H5Gstab.o: \
H5Gstab.c \
H5private.h \
H5public.h \
H5config.h \
H5ACprivate.h \
H5ACpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Ipublic.h \
H5Dpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5Gpkg.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5HLprivate.h \
H5HLpublic.h \
H5MMprivate.h \
H5MMpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h
H5HG.o: \
H5HG.c \
H5private.h \
H5public.h \
H5config.h \
H5ACprivate.h \
H5ACpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Ipublic.h \
H5Dpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5MFprivate.h \
H5MFpublic.h \
H5MMprivate.h
H5HL.o: \
H5HL.c \
H5private.h \
@ -222,6 +369,14 @@ H5HL.o: \
H5MFprivate.h \
H5MFpublic.h \
H5MMprivate.h
H5I.o: \
H5I.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Eprivate.h
H5MF.o: \
H5MF.c \
H5private.h \
@ -391,6 +546,29 @@ H5Oefl.o: \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h
H5Ofill.o: \
H5Ofill.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Iprivate.h \
H5MMprivate.h \
H5MMpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h
H5Olayout.o: \
H5Olayout.c \
H5private.h \
@ -547,6 +725,85 @@ H5Ostab.o: \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h
H5P.o: \
H5P.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Dprivate.h \
H5Gprivate.h \
H5Gpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5MMprivate.h
H5RA.o: \
H5RA.c \
H5RAprivate.h \
H5RApublic.h \
H5Ipublic.h \
H5public.h \
H5config.h \
H5Dprivate.h \
H5Dpublic.h \
H5private.h \
H5Fprivate.h \
H5Fpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Eprivate.h \
H5Epublic.h
H5S.o: \
H5S.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Eprivate.h \
H5Epublic.h \
H5MMprivate.h \
H5MMpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h
H5Sall.o: \
H5Sall.c \
H5private.h \
@ -570,6 +827,57 @@ H5Sall.o: \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h
H5Shyper.o: \
H5Shyper.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Vprivate.h \
H5MMprivate.h \
H5MMpublic.h
H5Smpio.o: \
H5Smpio.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h
H5Spoint.o: \
H5Spoint.c \
H5private.h \
@ -598,349 +906,6 @@ H5Spoint.o: \
H5Zprivate.h \
H5Zpublic.h \
H5Vprivate.h
H5Tbit.o: \
H5Tbit.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Iprivate.h \
H5Tpkg.h \
H5HGprivate.h \
H5HGpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Gprivate.h
H5V.o: \
H5V.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Oprivate.h \
H5Opublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h
H5Z.o: \
H5Z.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5MMprivate.h \
H5MMpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h
H5.o: \
H5.c \
H5private.h \
H5public.h \
H5config.h \
H5ACprivate.h \
H5ACpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Ipublic.h \
H5Dpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5Iprivate.h \
H5MMprivate.h \
H5MMpublic.h \
H5Pprivate.h \
H5Ppublic.h \
H5Zpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h
H5A.o: \
H5A.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Dprivate.h \
H5Gprivate.h \
H5Gpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5MMprivate.h \
H5MMpublic.h \
H5Pprivate.h \
H5Ppublic.h \
H5Apkg.h \
H5Aprivate.h
H5D.o: \
H5D.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5ACprivate.h \
H5ACpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Dprivate.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5HLprivate.h \
H5HLpublic.h \
H5MFprivate.h \
H5MFpublic.h \
H5MMprivate.h \
H5MMpublic.h \
H5Pprivate.h \
H5Ppublic.h \
H5TBprivate.h
H5E.o: \
H5E.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Eprivate.h
H5Gstab.o: \
H5Gstab.c \
H5private.h \
H5public.h \
H5config.h \
H5ACprivate.h \
H5ACpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Ipublic.h \
H5Dpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5Gpkg.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5HLprivate.h \
H5HLpublic.h \
H5MMprivate.h \
H5MMpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h
H5HG.o: \
H5HG.c \
H5private.h \
H5public.h \
H5config.h \
H5ACprivate.h \
H5ACpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Ipublic.h \
H5Dpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5MFprivate.h \
H5MFpublic.h \
H5MMprivate.h
H5I.o: \
H5I.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Eprivate.h
H5Ofill.o: \
H5Ofill.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Iprivate.h \
H5MMprivate.h \
H5MMpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h
H5P.o: \
H5P.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Dprivate.h \
H5Gprivate.h \
H5Gpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5MMprivate.h
H5R.o: \
H5R.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Eprivate.h
H5S.o: \
H5S.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Eprivate.h \
H5Epublic.h \
H5MMprivate.h \
H5MMpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h
H5Shyper.o: \
H5Shyper.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Vprivate.h \
H5MMprivate.h \
H5MMpublic.h
H5Sselect.o: \
H5Sselect.c \
H5private.h \
@ -997,98 +962,24 @@ H5T.o: \
H5Eprivate.h \
H5Epublic.h \
H5MMprivate.h
H5TB.o: \
H5TB.c \
H5Tbit.o: \
H5Tbit.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Iprivate.h \
H5Ipublic.h \
H5Eprivate.h
H5Fmpio.o: \
H5Fmpio.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Dprivate.h \
H5Dpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5Tpkg.h \
H5HGprivate.h \
H5HGpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5MMprivate.h \
H5MMpublic.h
H5G.o: \
H5G.c \
H5private.h \
H5public.h \
H5config.h \
H5Aprivate.h \
H5Apublic.h \
H5Ipublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Dprivate.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5Gpkg.h \
H5ACprivate.h \
H5ACpublic.h \
H5HLprivate.h \
H5HLpublic.h
H5Smpio.o: \
H5Smpio.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h
H5Gprivate.h
H5Tconv.o: \
H5Tconv.c \
H5Iprivate.h \
@ -1130,6 +1021,130 @@ H5Tinit.o: \
H5Fpublic.h \
H5Dpublic.h \
H5Tprivate.h
H5TB.o: \
H5TB.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Eprivate.h
H5V.o: \
H5V.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5Oprivate.h \
H5Opublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h
H5Z.o: \
H5Z.c \
H5private.h \
H5public.h \
H5config.h \
H5Eprivate.h \
H5Epublic.h \
H5Ipublic.h \
H5MMprivate.h \
H5MMpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h
H5D.o: \
H5D.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5ACprivate.h \
H5ACpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Dprivate.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5HLprivate.h \
H5HLpublic.h \
H5MFprivate.h \
H5MFpublic.h \
H5MMprivate.h \
H5MMpublic.h \
H5Pprivate.h \
H5Ppublic.h \
H5TBprivate.h
H5R.o: \
H5R.c \
H5private.h \
H5public.h \
H5config.h \
H5Iprivate.h \
H5Ipublic.h \
H5Dprivate.h \
H5Dpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5Rprivate.h
H5F.o: \
H5F.c \
H5private.h \
@ -1163,3 +1178,36 @@ H5F.o: \
H5Epublic.h \
H5MMprivate.h \
H5MMpublic.h
H5G.o: \
H5G.c \
H5private.h \
H5public.h \
H5config.h \
H5Aprivate.h \
H5Apublic.h \
H5Ipublic.h \
H5Gprivate.h \
H5Gpublic.h \
H5Bprivate.h \
H5Bpublic.h \
H5Fprivate.h \
H5Fpublic.h \
H5Dpublic.h \
H5Dprivate.h \
H5Oprivate.h \
H5Opublic.h \
H5HGprivate.h \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h \
H5Sprivate.h \
H5Spublic.h \
H5Zprivate.h \
H5Zpublic.h \
H5Eprivate.h \
H5Epublic.h \
H5Gpkg.h \
H5ACprivate.h \
H5ACpublic.h \
H5HLprivate.h \
H5HLpublic.h

View File

@ -53,6 +53,7 @@ FILE *fdopen(int fd, const char *mode);
#include <H5Iprivate.h> /*atoms */
#include <H5MMprivate.h> /*memory management */
#include <H5Pprivate.h> /*property lists */
#include <H5Rpublic.h> /* References */
#include <H5Sprivate.h> /*data spaces */
#include <H5Tprivate.h> /*data types */
#include <H5Zprivate.h> /*filters */
@ -1911,6 +1912,78 @@ H5_trace (hbool_t returning, const char *func, const char *type, ...)
}
break;
case 'r':
if (ptr) {
if (vp) {
fprintf (out, "0x%lx", (unsigned long)vp);
} else {
fprintf(out, "NULL");
}
} else {
href_t ref = va_arg (ap, href_t);
switch (ref.type) {
case H5R_BADTYPE:
fprintf (out, "H5R_BADTYPE");
break;
case H5R_OBJECT:
fprintf (out, "H5R_OBJECT");
break;
case H5R_DATASET_REGION:
fprintf (out, "H5R_DATASET_REGION");
break;
case H5R_INTERNAL:
fprintf (out, "H5R_INTERNAL");
break;
case H5R_MAXTYPE:
fprintf (out, "H5R_MAXTYPE");
break;
default:
fprintf (out, "BADTYPE(%ld)", (long)ref.type);
break;
}
}
break;
case 'R':
switch (type[1]) {
case 't':
if (ptr) {
if (vp) {
fprintf(out, "0x%lx", (unsigned long)vp);
} else {
fprintf(out, "NULL");
}
} else {
H5R_type_t reftype = va_arg(ap, H5R_type_t);
switch (reftype) {
case H5R_BADTYPE:
fprintf(out, "H5R_BADTYPE");
break;
case H5R_OBJECT:
fprintf(out, "H5R_OBJECT");
break;
case H5R_DATASET_REGION:
fprintf(out, "H5R_DATASET_REGION");
break;
case H5R_INTERNAL:
fprintf(out, "H5R_INTERNAL");
break;
case H5R_MAXTYPE:
fprintf(out, "H5R_MAXTYPE");
break;
default:
fprintf(out, "BADTYPE(%ld)", (long)reftype);
break;
}
}
break;
default:
fprintf(out, "BADTYPE(S%c)", type[1]);
goto error;
}
break;
case 'S':
switch (type[1]) {
case 'c':

145
src/H5D.c
View File

@ -32,10 +32,6 @@ static char RcsId[] = "@(#)$Revision$";
#include <H5Vprivate.h> /* Vector and array functions */
#include <H5Zprivate.h> /* Data filters */
#ifdef QAK
int qak_debug=0;
#endif /* QAK */
#define PABLO_MASK H5D_mask
/*
@ -802,6 +798,52 @@ H5Dextend(hid_t dset_id, const hsize_t *size)
FUNC_LEAVE (SUCCEED);
}
/*-------------------------------------------------------------------------
* Function: H5D_new
*
* Purpose: Creates a new, empty dataset structure
*
* Return: Success: Pointer to a new dataset descriptor.
*
* Failure: NULL
*
* Errors:
*
* Programmer: Quincey Koziol
* Monday, October 12, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
H5D_t *
H5D_new(const H5D_create_t *create_parms)
{
H5D_t *ret_value = NULL; /*return value */
FUNC_ENTER(H5D_new, NULL);
/* check args */
/* Nothing to check */
if (NULL==(ret_value = H5MM_calloc(sizeof(H5D_t)))) {
HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL,
"memory allocation failed");
}
if(create_parms!=NULL)
ret_value->create_parms = H5P_copy (H5P_DATASET_CREATE, create_parms);
else
ret_value->create_parms = H5P_copy (H5P_DATASET_CREATE, &H5D_create_dflt);
H5F_addr_undef(&(ret_value->ent.header));
/* Success */
done:
FUNC_LEAVE(ret_value);
} /* end H5D_new() */
/*-------------------------------------------------------------------------
* Function: H5D_create
@ -871,13 +913,11 @@ H5D_create(H5G_entry_t *loc, const char *name, const H5T_t *type,
}
/* Initialize the dataset object */
if (NULL==(new_dset = H5MM_calloc(sizeof(H5D_t)))) {
if (NULL==(new_dset = H5D_new(create_parms))) {
HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL,
"memory allocation failed");
}
H5F_addr_undef(&(new_dset->ent.header));
new_dset->type = H5T_copy(type, H5T_COPY_ALL);
new_dset->create_parms = H5P_copy (H5P_DATASET_CREATE, create_parms);
efl = &(new_dset->create_parms->efl);
/* Total raw data size */
@ -1078,6 +1118,8 @@ H5D_create(H5G_entry_t *loc, const char *name, const H5T_t *type,
* Modifications:
* Robb Matzke, 9 Jun 1998
* The data space message is no longer cached in the dataset struct.
* Quincey Koziol, 12 Oct 1998
* Moved guts of function into H5D_open_oid
*
*-------------------------------------------------------------------------
*/
@ -1086,8 +1128,6 @@ H5D_open(H5G_entry_t *loc, const char *name)
{
H5D_t *dataset = NULL; /*the dataset which was found */
H5D_t *ret_value = NULL; /*return value */
intn i;
H5S_t *space = NULL;
FUNC_ENTER(H5D_open, NULL);
@ -1095,42 +1135,83 @@ H5D_open(H5G_entry_t *loc, const char *name)
assert (loc);
assert (name && *name);
if (NULL==(dataset = H5MM_calloc(sizeof(H5D_t)))) {
if (NULL==(dataset = H5D_new(NULL))) {
HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL,
"memory allocation failed");
}
dataset->create_parms = H5P_copy (H5P_DATASET_CREATE, &H5D_create_dflt);
H5F_addr_undef(&(dataset->ent.header));
/* Open the dataset object */
/* Find the dataset object */
if (H5G_find(loc, name, NULL, &(dataset->ent)) < 0) {
HGOTO_ERROR(H5E_DATASET, H5E_NOTFOUND, NULL, "not found");
}
/* Open the dataset object */
if (H5D_open_oid(dataset, NULL) < 0) {
HGOTO_ERROR(H5E_DATASET, H5E_NOTFOUND, NULL, "not found");
}
/* Success */
ret_value = dataset;
done:
FUNC_LEAVE(ret_value);
} /* end H5D_open() */
/*-------------------------------------------------------------------------
* Function: H5D_open_oid
*
* Purpose: Opens a dataset for access.
*
* Return: SUCCEED/FAIL
*
* Errors:
*
* Programmer: Quincey Koziol
* Monday, October 12, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
herr_t
H5D_open_oid(H5D_t *dataset, H5G_entry_t *ent)
{
herr_t ret_value = FAIL; /*return value */
intn i;
H5S_t *space = NULL;
FUNC_ENTER(H5D_open_oid, FAIL);
/* check args */
assert (dataset);
/* Copy over the symbol table information if it's provided */
if(ent!=NULL)
HDmemcpy(&(dataset->ent),ent,sizeof(H5G_entry_t));
/* Find the dataset object */
if (H5O_open(&(dataset->ent)) < 0) {
HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, NULL, "unable to open");
HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "unable to open");
}
/* Get the type and space */
if (NULL==(dataset->type=H5O_read(&(dataset->ent), H5O_DTYPE, 0, NULL))) {
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, NULL,
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL,
"unable to load type info from dataset header");
}
if (NULL==(space=H5S_read (&(dataset->ent)))) {
HGOTO_ERROR (H5E_DATASET, H5E_CANTINIT, NULL,
HGOTO_ERROR (H5E_DATASET, H5E_CANTINIT, FAIL,
"unable to read data space info from dataset header");
}
/* Get the optional fill value message */
if (NULL==H5O_read(&(dataset->ent), H5O_FILL, 0,
&(dataset->create_parms->fill))) {
if (NULL==H5O_read(&(dataset->ent), H5O_FILL, 0, &(dataset->create_parms->fill))) {
H5E_clear();
HDmemset(&(dataset->create_parms->fill), 0,
sizeof(dataset->create_parms->fill));
}
/* Get the optional filters message */
if (NULL==H5O_read (&(dataset->ent), H5O_PLINE, 0,
&(dataset->create_parms->pline))) {
if (NULL==H5O_read (&(dataset->ent), H5O_PLINE, 0, &(dataset->create_parms->pline))) {
H5E_clear ();
HDmemset (&(dataset->create_parms->pline), 0,
sizeof(dataset->create_parms->pline));
@ -1138,9 +1219,9 @@ H5D_open(H5G_entry_t *loc, const char *name)
#ifdef HAVE_PARALLEL
/* If MPIO is used, no filter support yet. */
if (dataset->ent.file->shared->access_parms->driver == H5F_LOW_MPIO &&
if (dataset.ent.file->shared->access_parms->driver == H5F_LOW_MPIO &&
dataset->create_parms->pline.nfilters>0){
HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, NULL,
HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL,
"Parallel IO does not support filters yet");
}
#endif
@ -1152,7 +1233,7 @@ H5D_open(H5G_entry_t *loc, const char *name)
* them.
*/
if (NULL==H5O_read(&(dataset->ent), H5O_LAYOUT, 0, &(dataset->layout))) {
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, NULL,
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL,
"unable to read data layout message");
}
switch (dataset->layout.type) {
@ -1174,14 +1255,13 @@ H5D_open(H5G_entry_t *loc, const char *name)
break;
default:
HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, NULL, "not implemented yet");
HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "not implemented yet");
}
/* Get the external file list message, which might not exist */
if (NULL==H5O_read (&(dataset->ent), H5O_EFL, 0,
&(dataset->create_parms->efl)) &&
if (NULL==H5O_read (&(dataset->ent), H5O_EFL, 0, &(dataset->create_parms->efl)) &&
!H5F_addr_defined (&(dataset->layout.addr))) {
HGOTO_ERROR (H5E_DATASET, H5E_CANTINIT, NULL,
HGOTO_ERROR (H5E_DATASET, H5E_CANTINIT, FAIL,
"storage address is undefined an no external file list");
}
@ -1190,21 +1270,20 @@ H5D_open(H5G_entry_t *loc, const char *name)
* This is especially important for parallel I/O where the B-tree must
* be fully populated before I/O can happen.
*/
if ((dataset->ent.file->intent & H5F_ACC_RDWR) &&
H5D_CHUNKED==dataset->layout.type) {
if ((dataset->ent.file->intent & H5F_ACC_RDWR) && H5D_CHUNKED==dataset->layout.type) {
if (H5D_init_storage(dataset, space)<0) {
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, NULL,
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL,
"unable to initialize file storage");
}
}
/* Success */
ret_value = dataset;
ret_value = SUCCEED;
done:
if (space)
H5S_close (space);
if (!ret_value && dataset) {
if (ret_value==FAIL && dataset) {
if (H5F_addr_defined(&(dataset->ent.header))) {
H5O_close(&(dataset->ent));
}
@ -1218,7 +1297,7 @@ H5D_open(H5G_entry_t *loc, const char *name)
H5MM_xfree(dataset);
}
FUNC_LEAVE(ret_value);
}
} /* end H5D_open_oid() */
/*-------------------------------------------------------------------------
* Function: H5D_close

View File

@ -1173,7 +1173,7 @@ H5F_istore_lock (H5F_t *f, const H5O_layout_t *layout,
const H5O_fill_t *fill, const hssize_t offset[],
hbool_t relax, intn *idx_hint/*in,out*/)
{
uintn idx; /*hash index number */
uintn idx=0; /*hash index number */
hbool_t found = FALSE; /*already in cache? */
H5F_rdcc_t *rdcc = &(f->shared->rdcc);/*raw data chunk cache*/
H5F_rdcc_ent_t *ent = NULL; /*cache entry */

View File

@ -81,5 +81,7 @@ herr_t H5D_extend (H5D_t *dataset, const hsize_t *size);
H5G_entry_t *H5D_entof (H5D_t *dataset);
H5T_t *H5D_typeof (H5D_t *dset);
H5S_t *H5D_get_space(H5D_t *dset);
H5D_t * H5D_new(const H5D_create_t *create_parms);
herr_t H5D_open_oid(H5D_t *dataset, H5G_entry_t *ent);
#endif

View File

@ -58,6 +58,7 @@ static const H5E_major_mesg_t H5E_major_mesg_g[] = {
{H5E_PLINE, "Data filters layer"},
{H5E_EFL, "External file list"},
{H5E_RAGGED, "Ragged array layer"},
{H5E_REFERENCE, "References layer"},
};
static const H5E_minor_mesg_t H5E_minor_mesg_g[] = {

View File

@ -74,7 +74,8 @@ typedef enum H5E_major_t {
H5E_ATTR, /*Attribute */
H5E_PLINE, /*Data filters */
H5E_EFL, /*External file list */
H5E_RAGGED /*Ragged arrays */
H5E_RAGGED, /*Ragged arrays */
H5E_REFERENCE /*References */
} H5E_major_t;
/* Declare an enumerated type which holds all the valid minor HDF error codes */

View File

@ -1687,7 +1687,7 @@ H5Fclose(hid_t file_id)
*/
static herr_t
H5F_mount(H5G_entry_t *loc, const char *name, H5F_t *child,
const H5F_mprop_t *plist)
const H5F_mprop_t __unused__ *plist)
{
H5G_t *mount_point = NULL; /*mount point group */
H5G_entry_t *mp_ent = NULL; /*mount point symbol table entry*/
@ -1809,7 +1809,7 @@ H5F_unmount(H5G_entry_t *loc, const char *name)
H5G_entry_t *ent = NULL; /*temporary symbol table entry */
herr_t ret_value = FAIL; /*return value */
uintn i; /*coutners */
intn lt, rt, md, cmp; /*binary search indices */
intn lt, rt, md=(-1), cmp; /*binary search indices */
FUNC_ENTER(H5F_unmount, FAIL);
assert(loc);
@ -1909,7 +1909,7 @@ herr_t
H5F_mountpoint(H5G_entry_t *find/*in,out*/)
{
H5F_t *parent = find->file;
intn lt, rt, md, cmp;
intn lt, rt, md=(-1), cmp;
H5G_entry_t *ent = NULL;
FUNC_ENTER(H5F_mountpoint, FAIL);

View File

@ -1173,7 +1173,7 @@ H5F_istore_lock (H5F_t *f, const H5O_layout_t *layout,
const H5O_fill_t *fill, const hssize_t offset[],
hbool_t relax, intn *idx_hint/*in,out*/)
{
uintn idx; /*hash index number */
uintn idx=0; /*hash index number */
hbool_t found = FALSE; /*already in cache? */
H5F_rdcc_t *rdcc = &(f->shared->rdcc);/*raw data chunk cache*/
H5F_rdcc_ent_t *ent = NULL; /*cache entry */

View File

@ -159,11 +159,7 @@ H5I_init_interface(void)
* Make certain the ID types don't overflow the number of bits allocated
* for them in an ID.
*/
#if 0
assert((int)H5I_MAXID<=(int)pow((double)2.0,(double)GROUP_BITS));
#else
assert(H5I_MAXID<=(1<<GROUP_BITS));
#endif
/* Registers the cleanup routine with the exit chain */
ret_value = H5_add_exit(&H5I_term_interface);

394
src/H5R.c
View File

@ -18,8 +18,11 @@ static char RcsId[] = "@(#)$Revision$";
#include <H5private.h> /* Generic Functions */
#include <H5Iprivate.h> /* ID Functions */
#include <H5Dprivate.h> /* Datasets */
#include <H5Eprivate.h> /* Error handling */
#include <H5Rprivate.h> /* Data-space functions */
#include <H5Gprivate.h> /* Groups */
#include <H5Rprivate.h> /* References */
#include <H5Sprivate.h> /* Dataspaces */
/* Interface initialization */
#define PABLO_MASK H5R_mask
@ -28,6 +31,13 @@ static intn interface_initialize_g = FALSE;
static herr_t H5R_init_interface(void);
static void H5R_term_interface(void);
/* Static functions */
static herr_t H5R_create(href_t *ref, H5G_entry_t *loc, const char *name,
H5R_type_t ref_type, H5S_t *space);
static hid_t H5R_dereference(href_t *ref);
static H5S_t * H5R_get_space(href_t *ref);
static H5R_type_t H5R_get_type(href_t *ref);
/*--------------------------------------------------------------------------
NAME
@ -65,7 +75,7 @@ H5R_init_interface(void)
USAGE
void H5R_term_interface()
RETURNS
SUCCEED/FAIL
void
DESCRIPTION
Release the atom group and any other resources allocated.
GLOBAL VARIABLES
@ -81,3 +91,383 @@ H5R_term_interface(void)
H5I_destroy_group(H5I_REFERENCE);
} /* end H5R_term_interface() */
/*--------------------------------------------------------------------------
NAME
H5R_create
PURPOSE
Creates a particular kind of reference for the user
USAGE
herr_t H5R_create(ref, loc, name, ref_type, space)
href_t *ref; OUT: Reference created
H5G_entry_t *loc; IN: File location used to locate object pointed to
const char *name; IN: Name of object at location LOC_ID of object
pointed to
H5R_type_t ref_type; IN: Type of reference to create
H5S_t *space; IN: Dataspace ID with selection, used for Dataset
Region references.
RETURNS
SUCCEED/FAIL
DESCRIPTION
Creates a particular type of reference specified with REF_TYPE, in the
space pointed to by REF. The LOC_ID and NAME are used to locate the object
pointed to and the SPACE_ID is used to choose the region pointed to (for
Dataset Region references).
GLOBAL VARIABLES
COMMENTS, BUGS, ASSUMPTIONS
EXAMPLES
REVISION LOG
--------------------------------------------------------------------------*/
static herr_t
H5R_create(href_t *ref, H5G_entry_t *loc, const char *name, H5R_type_t ref_type, H5S_t __unused__ *space)
{
H5G_stat_t sb; /* Stat buffer for retrieving OID */
herr_t ret_value = FAIL;
FUNC_ENTER(H5R_create, FAIL);
assert(ref);
assert(loc);
assert(name);
assert(ref_type>H5R_BADTYPE || ref_type<H5R_MAXTYPE);
if (H5G_get_objinfo (loc, name, 0, &sb)<0)
HGOTO_ERROR (H5E_REFERENCE, H5E_NOTFOUND, FAIL, "unable to stat object");
/* Set information for reference */
ref->type=ref_type;
ref->objno[0]=sb.objno[0];
ref->objno[1]=sb.objno[1];
ref->file=loc->file;
/* Return success */
ret_value=SUCCEED;
done:
FUNC_LEAVE(ret_value);
} /* end H5R_create() */
/*--------------------------------------------------------------------------
NAME
H5Rcreate
PURPOSE
Creates a particular kind of reference for the user
USAGE
herr_t H5Rcreate(ref, loc_id, name, ref_type, space_id)
href_t *ref; OUT: Reference created
hid_t loc_id; IN: Location ID used to locate object pointed to
const char *name; IN: Name of object at location LOC_ID of object
pointed to
H5R_type_t ref_type; IN: Type of reference to create
hid_t space_id; IN: Dataspace ID with selection, used for Dataset
Region references.
RETURNS
SUCCEED/FAIL
DESCRIPTION
Creates a particular type of reference specified with REF_TYPE, in the
space pointed to by REF. The LOC_ID and NAME are used to locate the object
pointed to and the SPACE_ID is used to choose the region pointed to (for
Dataset Region references).
GLOBAL VARIABLES
COMMENTS, BUGS, ASSUMPTIONS
EXAMPLES
REVISION LOG
--------------------------------------------------------------------------*/
herr_t
H5Rcreate(href_t *ref, hid_t loc_id, const char *name, H5R_type_t ref_type, hid_t space_id)
{
H5G_entry_t *loc = NULL; /* File location */
H5S_t *space = NULL; /* Pointer to dataspace containing region */
herr_t ret_value = FAIL;
FUNC_ENTER(H5Rcreate, FAIL);
H5TRACE5("e","*risRti",ref,loc_id,name,ref_type,space_id);
/* Check args */
if(ref==NULL)
HRETURN_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer");
if (NULL==(loc=H5G_loc (loc_id)))
HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL, "not a location");
if (!name || !*name)
HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name given");
if(ref_type<=H5R_BADTYPE || ref_type>=H5R_MAXTYPE)
HRETURN_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference type");
if(ref_type!=H5R_OBJECT)
HRETURN_ERROR (H5E_ARGS, H5E_UNSUPPORTED, FAIL, "reference type not supported");
if (space_id!=(-1) && (H5I_DATASPACE!=H5I_get_type (space_id) || NULL==(space=H5I_object (space_id))))
HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace");
/* Create reference */
if ((ret_value=H5R_create(ref,loc,name,ref_type,space))<0)
HGOTO_ERROR (H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to create reference");
done:
FUNC_LEAVE(ret_value);
} /* end H5Rcreate() */
/*--------------------------------------------------------------------------
NAME
H5R_dereference
PURPOSE
Opens the HDF5 object referenced.
USAGE
hid_t H5R_dereference(ref)
href_t *ref; IN: Reference to open.
RETURNS
Valid ID on success, FAIL on failure
DESCRIPTION
Given a reference to some object, open that object and return an ID for
that object.
GLOBAL VARIABLES
COMMENTS, BUGS, ASSUMPTIONS
Currently only set up to work with references to datasets
EXAMPLES
REVISION LOG
--------------------------------------------------------------------------*/
static hid_t
H5R_dereference(href_t *ref)
{
H5D_t *dataset; /* Pointer to dataset to open */
H5G_entry_t ent; /* Symbol table entry */
hid_t ret_value = FAIL;
FUNC_ENTER(H5R_dereference, FAIL);
assert(ref);
/*
* Switch on object type, when we implement that feature, always try to
* open a dataset for now
*/
/* Allocate the dataset structure */
if (NULL==(dataset = H5D_new(NULL))) {
HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL,
"memory allocation failed");
}
/* Initialize the symbol table entry */
HDmemset(&ent,0,sizeof(H5G_entry_t));
HDmemcpy(&(ent.header),ref->objno,sizeof(haddr_t));
ent.type=H5G_NOTHING_CACHED;
ent.file=ref->file;
/* Open the dataset object */
if (H5D_open_oid(dataset, &ent) < 0) {
HGOTO_ERROR(H5E_DATASET, H5E_NOTFOUND, NULL, "not found");
}
/* Create an atom for the dataset */
if ((ret_value = H5I_register(H5I_DATASET, dataset)) < 0) {
H5D_close(dataset);
HRETURN_ERROR(H5E_DATASET, H5E_CANTREGISTER, FAIL,
"can't register dataset");
}
done:
FUNC_LEAVE(ret_value);
} /* end H5R_dereference() */
/*--------------------------------------------------------------------------
NAME
H5Rdereference
PURPOSE
Opens the HDF5 object referenced.
USAGE
hid_t H5Rdereference(ref)
href_t *ref; IN: Reference to open.
RETURNS
Valid ID on success, FAIL on failure
DESCRIPTION
Given a reference to some object, open that object and return an ID for
that object.
GLOBAL VARIABLES
COMMENTS, BUGS, ASSUMPTIONS
EXAMPLES
REVISION LOG
--------------------------------------------------------------------------*/
hid_t
H5Rdereference(href_t *ref)
{
hid_t ret_value = FAIL;
FUNC_ENTER(H5Rdereference, FAIL);
H5TRACE1("i","*r",ref);
/* Check args */
if(ref==NULL)
HRETURN_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer");
/* Create reference */
if ((ret_value=H5R_dereference(ref))<0)
HGOTO_ERROR (H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable dereference object");
done:
FUNC_LEAVE(ret_value);
} /* end H5Rdereference() */
/*--------------------------------------------------------------------------
NAME
H5R_get_space
PURPOSE
Retrieves a dataspace with the region pointed to selected.
USAGE
H5S_t *H5R_get_space(ref)
href_t *ref; IN: Reference to open.
RETURNS
Pointer to the dataspace on success, NULL on failure
DESCRIPTION
Given a reference to some object, creates a copy of the dataset pointed
to's dataspace and defines a selection in the copy which is the region
pointed to.
GLOBAL VARIABLES
COMMENTS, BUGS, ASSUMPTIONS
EXAMPLES
REVISION LOG
--------------------------------------------------------------------------*/
static H5S_t *
H5R_get_space(href_t __unused__ *ref)
{
H5S_t *ret_value = NULL;
FUNC_ENTER(H5R_get_space, NULL);
assert(ref);
#ifdef LATER
done:
#endif /* LATER */
FUNC_LEAVE(ret_value);
} /* end H5R_get_space() */
/*--------------------------------------------------------------------------
NAME
H5Rget_space
PURPOSE
Retrieves a dataspace with the region pointed to selected.
USAGE
hid_t H5Rget_space(ref)
href_t *ref; IN: Reference to open.
RETURNS
Valid ID on success, FAIL on failure
DESCRIPTION
Given a reference to some object, creates a copy of the dataset pointed
to's dataspace and defines a selection in the copy which is the region
pointed to.
GLOBAL VARIABLES
COMMENTS, BUGS, ASSUMPTIONS
EXAMPLES
REVISION LOG
--------------------------------------------------------------------------*/
hid_t
H5Rget_space(href_t *ref)
{
H5S_t *space = NULL;
hid_t ret_value = FAIL;
FUNC_ENTER(H5Rget_space, FAIL);
H5TRACE1("i","*r",ref);
/* Check args */
if(ref==NULL)
HGOTO_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer");
/* Create reference */
if ((space=H5R_get_space(ref))==NULL)
HGOTO_ERROR (H5E_REFERENCE, H5E_CANTCREATE, FAIL, "unable to create dataspace");
/* Atomize */
if ((ret_value=H5I_register (H5I_DATASPACE, space))<0)
HGOTO_ERROR (H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register dataspace atom");
done:
FUNC_LEAVE(ret_value);
} /* end H5Rget_space() */
/*--------------------------------------------------------------------------
NAME
H5R_get_type
PURPOSE
Retrieves the type of a reference.
USAGE
H5R_type_t H5R_get_type(ref)
href_t *ref; IN: Reference to open.
RETURNS
Reference type on success, <0 on failure
DESCRIPTION
Given a reference to some object, returns the type of reference. See
list of valid H5R_type_t in H5Rpublic.h
GLOBAL VARIABLES
COMMENTS, BUGS, ASSUMPTIONS
EXAMPLES
REVISION LOG
--------------------------------------------------------------------------*/
static H5R_type_t
H5R_get_type(href_t *ref)
{
H5R_type_t ret_value = H5R_BADTYPE;
FUNC_ENTER(H5R_get_type, H5R_BADTYPE);
assert(ref);
ret_value=ref->type;
#ifdef LATER
done:
#endif /* LATER */
FUNC_LEAVE(ret_value);
} /* end H5R_get_type() */
/*--------------------------------------------------------------------------
NAME
H5Rget_type
PURPOSE
Retrieves the type of a reference.
USAGE
H5R_type_t H5Rget_space(ref)
href_t *ref; IN: Reference to open.
RETURNS
Valid reference type on success, <0 on failure
DESCRIPTION
Given a reference to some object, returns the type of reference. See
list of valid H5R_type_t in H5Rpublic.h
GLOBAL VARIABLES
COMMENTS, BUGS, ASSUMPTIONS
EXAMPLES
REVISION LOG
--------------------------------------------------------------------------*/
H5R_type_t
H5Rget_type(href_t *ref)
{
H5R_type_t ret_value = H5R_BADTYPE;
FUNC_ENTER(H5Rget_type, FAIL);
H5TRACE1("Rt","*r",ref);
/* Check args */
if(ref==NULL)
HGOTO_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer");
/* Create reference */
if ((ret_value=H5R_get_type(ref))<0)
HGOTO_ERROR (H5E_REFERENCE, H5E_CANTCREATE, FAIL, "unable to check reference type");
done:
FUNC_LEAVE(ret_value);
} /* end H5Rget_type() */

View File

@ -20,6 +20,32 @@
#include <H5public.h>
#include <H5Ipublic.h>
/*
* Reference types allowed.
*/
typedef enum {
H5R_BADTYPE = (-1), /* invalid Reference Type */
H5R_OBJECT, /* Object reference */
H5R_DATASET_REGION, /* Dataset Region Reference */
H5R_INTERNAL, /* Internal Reference */
H5R_MAXTYPE /* highest type in group (Invalid as true type)*/
} H5R_type_t;
/* Reference structure for user's code */
typedef struct {
H5R_type_t type; /* Type of reference information in union */
unsigned long objno[2]; /* OID of object referenced */
struct H5F_t *file; /* Pointer to the file the reference is in */
union { /* union to hold structs */
struct {
} obj; /* Object reference structure */
struct {
} dreg; /* Dataset Region reference structure */
struct {
} intrl; /* Internal reference structure */
}u;
} href_t;
/* Publicly visible datastructures */
#ifdef __cplusplus
@ -27,6 +53,11 @@ extern "C" {
#endif
/* Functions in H5R.c */
herr_t H5Rcreate(href_t *ref, hid_t loc_id, const char *name,
H5R_type_t ref_type, hid_t space_id);
hid_t H5Rdereference(href_t *ref);
hid_t H5Rget_space(href_t *ref);
H5R_type_t H5Rget_type(href_t *ref);
#ifdef __cplusplus
}

View File

@ -33,6 +33,7 @@
#include <H5MMpublic.h> /* Core memory management */
#include <H5Opublic.h> /* Object headers */
#include <H5Ppublic.h> /* Property lists */
#include <H5Rpublic.h> /* References */
#include <H5RApublic.h> /* Ragged arrays */
#include <H5Spublic.h> /* Dataspaces */
#include <H5Tpublic.h> /* Datatypes */