1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5DUMP_EXTERN_H__
#define H5DUMP_EXTERN_H__
#include "hdf5.h"
#include "H5private.h"
#include "h5tools.h"
#include "h5tools_utils.h"
#include "h5tools_ref.h"
#include "h5trav.h"
#include "h5dump_defines.h"
/**
** This is the global dispatch table for the dump functions.
**/
/* the table of dump functions */
typedef struct dump_functions_t {
void (*dump_group_function)(hid_t, const char *);
void (*dump_named_datatype_function)(hid_t, const char *);
void (*dump_dataset_function)(hid_t, const char *, struct subset_t *);
void (*dump_dataspace_function)(hid_t);
void (*dump_datatype_function)(hid_t);
herr_t (*dump_attribute_function)(hid_t, const char *, const H5A_info_t *, void *);
void (*dump_data_function)(hid_t, int, struct subset_t *, int);
} dump_functions;
/* List of table structures. There is one table structure for each file */
typedef struct h5dump_table_list_t {
size_t nalloc;
size_t nused;
struct {
unsigned long fileno; /* File number that these tables refer to */
hid_t oid; /* ID of an object in this file, held open so fileno is consistent */
table_t * group_table; /* Table of groups */
table_t * dset_table; /* Table of datasets */
table_t * type_table; /* Table of datatypes */
} * tables;
} h5dump_table_list_t;
extern h5dump_table_list_t table_list;
extern table_t * group_table, *dset_table, *type_table;
extern unsigned dump_indent; /* how far in to indent the line */
extern int unamedtype; /* shared datatype with no name */
extern hbool_t hit_elink; /* whether we have traversed an external link */
extern size_t prefix_len;
extern char * prefix;
extern const char *fp_format;
/* things to display or which are set via command line parameters */
typedef struct {
int display_all;
int display_oid;
int display_data;
int display_attr_data;
int display_char; /* print 1-byte numbers as ASCII */
int usingdasho;
int display_bb; /* superblock */
int display_dcpl; /* dcpl */
int display_fi; /* file index */
int display_ai; /* array index */
int display_escape; /* escape non printable characters */
int display_region; /* print region reference data */
int disable_compact_subset; /* disable compact form of subset notation */
int display_packed_bits; /* print 1-8 byte numbers as packed bits */
int include_attrs; /* Display attributes */
} dump_opt_t;
extern dump_opt_t dump_opts;
#define PACKED_BITS_MAX 8 /* Maximum number of packed-bits to display */
#define PACKED_BITS_SIZE_MAX 8 * sizeof(long long) /* Maximum bits size of integer types of packed-bits */
/* mask list for packed bits */
extern unsigned long long
packed_mask[PACKED_BITS_MAX]; /* packed bits are restricted to 8*sizeof(llong) bytes */
/* packed bits display parameters */
extern unsigned packed_offset[PACKED_BITS_MAX];
extern unsigned packed_length[PACKED_BITS_MAX];
/*
* The global table is set to either ddl_function_table or
* xml_function_table in the initialization.
*/
extern const dump_functions *dump_function_table;
#ifdef __cplusplus
extern "C" {
#endif
void add_prefix(char **prfx, size_t *prfx_len, const char *name);
hid_t h5_fileaccess(void);
ssize_t table_list_add(hid_t oid, unsigned long file_no);
ssize_t table_list_visited(unsigned long file_no);
#ifdef __cplusplus
}
#endif
#endif /* !H5DUMP_EXTERN_H__ */
|