MISR Toolkit  1.5.1
H5Rpublic.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * Copyright by The HDF Group. *
3  * Copyright by the Board of Trustees of the University of Illinois. *
4  * All rights reserved. *
5  * *
6  * This file is part of HDF5. The full HDF5 copyright notice, including *
7  * terms governing use, modification, and redistribution, is contained in *
8  * the COPYING file, which can be found at the root of the source code *
9  * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
10  * If you do not have access to either file, you may request a copy from *
11  * help@hdfgroup.org. *
12  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13 
14 /*
15  * This file contains public declarations for the H5S module.
16  */
17 #ifndef _H5Rpublic_H
18 #define _H5Rpublic_H
19 
20 /* Public headers needed by this file */
21 #include "H5public.h"
22 #include "H5Gpublic.h"
23 #include "H5Ipublic.h"
24 
25 /*
26  * Reference types allowed.
27  */
28 typedef enum {
29  H5R_BADTYPE = (-1), /*invalid Reference Type */
30  H5R_OBJECT, /*Object reference */
31  H5R_DATASET_REGION, /*Dataset Region Reference */
32  H5R_MAXTYPE /*highest type (Invalid as true type) */
33 } H5R_type_t;
34 
35 /* Note! Be careful with the sizes of the references because they should really
36  * depend on the run-time values in the file. Unfortunately, the arrays need
37  * to be defined at compile-time, so we have to go with the worst case sizes for
38  * them. -QAK
39  */
40 #define H5R_OBJ_REF_BUF_SIZE sizeof(haddr_t)
41 /* Object reference structure for user's code */
42 typedef haddr_t hobj_ref_t; /* Needs to be large enough to store largest haddr_t in a worst case machine (ie. 8 bytes currently) */
43 
44 #define H5R_DSET_REG_REF_BUF_SIZE (sizeof(haddr_t)+4)
45 /* 4 is used instead of sizeof(int) to permit portability between
46  the Crays and other machines (the heap ID is always encoded as an int32 anyway)
47 */
48 /* Dataset Region reference structure for user's code */
49 typedef unsigned char hdset_reg_ref_t[H5R_DSET_REG_REF_BUF_SIZE];/* Buffer to store heap ID and index */
50 /* Needs to be large enough to store largest haddr_t in a worst case machine (ie. 8 bytes currently) plus an int */
51 
52 /* Publicly visible data structures */
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
58 /* Functions in H5R.c */
59 H5_DLL herr_t H5Rcreate(void *ref, hid_t loc_id, const char *name,
60  H5R_type_t ref_type, hid_t space_id);
61 H5_DLL hid_t H5Rdereference(hid_t dataset, H5R_type_t ref_type, const void *ref);
62 H5_DLL hid_t H5Rget_region(hid_t dataset, H5R_type_t ref_type, const void *ref);
63 H5_DLL herr_t H5Rget_obj_type2(hid_t id, H5R_type_t ref_type, const void *_ref,
64  H5O_type_t *obj_type);
65 H5_DLL ssize_t H5Rget_name(hid_t loc_id, H5R_type_t ref_type, const void *ref,
66  char *name/*out*/, size_t size);
67 
68 /* Symbols defined for compatibility with previous versions of the HDF5 API.
69  *
70  * Use of these symbols is deprecated.
71  */
72 #ifndef H5_NO_DEPRECATED_SYMBOLS
73 
74 /* Macros */
75 
76 
77 /* Typedefs */
78 
79 
80 /* Function prototypes */
81 H5_DLL H5G_obj_t H5Rget_obj_type1(hid_t id, H5R_type_t ref_type, const void *_ref);
82 
83 #endif /* H5_NO_DEPRECATED_SYMBOLS */
84 
85 #ifdef __cplusplus
86 }
87 #endif
88 
89 #endif /* _H5Rpublic_H */
90 
H5_DLL hid_t H5Rget_region(hid_t dataset, H5R_type_t ref_type, const void *ref)
H5_DLL H5G_obj_t H5Rget_obj_type1(hid_t id, H5R_type_t ref_type, const void *_ref)
long long ssize_t
Definition: H5public.h:156
#define H5_DLL
Definition: H5api_adpt.h:256
int herr_t
Definition: H5public.h:124
H5O_type_t
Definition: H5Opublic.h:81
H5_DLL ssize_t H5Rget_name(hid_t loc_id, H5R_type_t ref_type, const void *ref, char *name, size_t size)
uint64_t haddr_t
Definition: H5public.h:182
HDFFCLIBAPI _fcd name
HDFFCLIBAPI intf intf * ref
HDFFCLIBAPI intf * size
H5_DLL herr_t H5Rcreate(void *ref, hid_t loc_id, const char *name, H5R_type_t ref_type, hid_t space_id)
int hid_t
Definition: H5Ipublic.h:54
H5_DLL herr_t H5Rget_obj_type2(hid_t id, H5R_type_t ref_type, const void *_ref, H5O_type_t *obj_type)
unsigned char hdset_reg_ref_t[H5R_DSET_REG_REF_BUF_SIZE]
Definition: H5Rpublic.h:49
H5R_type_t
Definition: H5Rpublic.h:28
H5_DLL hid_t H5Rdereference(hid_t dataset, H5R_type_t ref_type, const void *ref)
H5G_obj_t
Definition: H5Gpublic.h:117
#define H5R_DSET_REG_REF_BUF_SIZE
Definition: H5Rpublic.h:44
haddr_t hobj_ref_t
Definition: H5Rpublic.h:42

MISR Toolkit - Copyright © 2005 - 2020 Jet Propulsion Laboratory
Generated on Fri Jun 19 2020 22:49:53