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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* 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 files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* Programmer: Quincey Koziol <koziol@ncsa.uiuc.edu>
* Monday, April 14, 2003
*
* Purpose: This file contains declarations which are visible only within
* the H5D package. Source files outside the H5D package should
* include H5Dprivate.h instead.
*/
#ifndef H5D_PACKAGE
#error "Do not include this file outside the H5D package!"
#endif
#ifndef _H5Dpkg_H
#define _H5Dpkg_H
/* Get package's private header */
#include "H5Dprivate.h"
/* Other private headers needed by this file */
#include "H5Gprivate.h" /* Groups */
#include "H5Oprivate.h" /* Object headers */
#include "H5Sprivate.h" /* Dataspace functions */
#include "H5Tprivate.h" /* Datatype functions */
/**************************/
/* Package Private Macros */
/**************************/
/* The number of reserved IDs in dataset ID group */
#define H5D_RESERVED_ATOMS 0
/* Set the minimum object header size to create objects with */
#define H5D_MINHDR_SIZE 256
/****************************/
/* Package Private Typedefs */
/****************************/
/*
* A dataset is the following struct.
*/
struct H5D_t {
H5G_entry_t ent; /* cached object header stuff */
H5T_t *type; /* datatype of this dataset */
H5S_t *space; /* dataspace of this dataset */
hid_t dcpl_id; /* dataset creation property id */
H5D_dcpl_cache_t dcpl_cache; /* Cached DCPL values */
H5O_layout_t layout; /* data layout */
/* Cache some frequently accessed values from the DCPL */
H5O_efl_t efl; /* External file list information */
H5D_alloc_time_t alloc_time; /* Dataset allocation time */
H5D_fill_time_t fill_time; /* Dataset fill value writing time */
H5O_fill_t fill; /* Dataset fill value information */
};
/* Enumerated type for allocating dataset's storage */
typedef enum {
H5D_ALLOC_CREATE, /* Dataset is being created */
H5D_ALLOC_OPEN, /* Dataset is being opened */
H5D_ALLOC_EXTEND, /* Dataset's dataspace is being extended */
H5D_ALLOC_WRITE /* Dataset is being extended */
} H5D_time_alloc_t;
/*****************************/
/* Package Private Variables */
/*****************************/
extern H5D_dxpl_cache_t H5D_def_dxpl_cache;
/******************************/
/* Package Private Prototypes */
/******************************/
H5_DLL herr_t H5D_alloc_storage (H5F_t *f, hid_t dxpl_id, H5D_t *dset, H5D_time_alloc_t time_alloc,
hbool_t update_time, hbool_t full_overwrite);
/* Testing functions */
#ifdef H5D_TESTING
H5_DLL herr_t H5D_layout_version_test(hid_t did, unsigned *version);
H5_DLL herr_t H5D_layout_contig_size_test(hid_t did, hsize_t *size);
#endif /* H5D_TESTING */
#endif /*_H5Dpkg_H*/
|