00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 #ifndef _H5Spublic_H
00020 #define _H5Spublic_H
00021 
00022 
00023 #include "H5public.h"
00024 #include "H5Ipublic.h"
00025 
00026 
00027 #define H5S_ALL         0
00028 #define H5S_UNLIMITED   ((hsize_t)(hssize_t)(-1))
00029 
00030 
00031 #define H5S_MAX_RANK    32
00032 
00033 
00034 typedef enum H5S_class_t {
00035     H5S_NO_CLASS         = -1,  
00036     H5S_SCALAR           = 0,   
00037     H5S_SIMPLE           = 1,   
00038     H5S_NULL             = 2    
00039 } H5S_class_t;
00040 
00041 
00042 typedef enum H5S_seloper_t {
00043     H5S_SELECT_NOOP      = -1,  
00044     H5S_SELECT_SET       = 0,   
00045     H5S_SELECT_OR,              
00046 
00047 
00048 
00049 
00050 
00051     H5S_SELECT_AND,             
00052 
00053 
00054 
00055 
00056 
00057     H5S_SELECT_XOR,             
00058 
00059 
00060 
00061 
00062 
00063     H5S_SELECT_NOTB,            
00064 
00065 
00066 
00067 
00068 
00069     H5S_SELECT_NOTA,            
00070 
00071 
00072 
00073 
00074 
00075     H5S_SELECT_APPEND,          
00076     H5S_SELECT_PREPEND,         
00077     H5S_SELECT_INVALID          
00078 } H5S_seloper_t;
00079 
00080 
00081 typedef enum {
00082     H5S_SEL_ERROR       = -1,   
00083     H5S_SEL_NONE        = 0,    
00084     H5S_SEL_POINTS      = 1,    
00085     H5S_SEL_HYPERSLABS  = 2,    
00086     H5S_SEL_ALL         = 3,    
00087     H5S_SEL_N                   
00088 }H5S_sel_type;
00089 
00090 #ifdef __cplusplus
00091 extern "C" {
00092 #endif
00093 
00094 
00095 H5_DLL hid_t H5Screate(H5S_class_t type);
00096 H5_DLL hid_t H5Screate_simple(int rank, const hsize_t dims[],
00097                                const hsize_t maxdims[]);
00098 H5_DLL herr_t H5Sset_extent_simple(hid_t space_id, int rank,
00099                                     const hsize_t dims[],
00100                                     const hsize_t max[]);
00101 H5_DLL hid_t H5Scopy(hid_t space_id);
00102 H5_DLL herr_t H5Sclose(hid_t space_id);
00103 H5_DLL herr_t H5Sencode(hid_t obj_id, void *buf, size_t *nalloc);
00104 H5_DLL hid_t H5Sdecode(const void *buf);
00105 H5_DLL hssize_t H5Sget_simple_extent_npoints(hid_t space_id);
00106 H5_DLL int H5Sget_simple_extent_ndims(hid_t space_id);
00107 H5_DLL int H5Sget_simple_extent_dims(hid_t space_id, hsize_t dims[],
00108                                       hsize_t maxdims[]);
00109 H5_DLL htri_t H5Sis_simple(hid_t space_id);
00110 H5_DLL hssize_t H5Sget_select_npoints(hid_t spaceid);
00111 H5_DLL herr_t H5Sselect_hyperslab(hid_t space_id, H5S_seloper_t op,
00112                                    const hsize_t start[],
00113                                    const hsize_t _stride[],
00114                                    const hsize_t count[],
00115                                    const hsize_t _block[]);
00116 
00117 #ifdef NEW_HYPERSLAB_API
00118 H5_DLL hid_t H5Scombine_hyperslab(hid_t space_id, H5S_seloper_t op,
00119                                    const hsize_t start[],
00120                                    const hsize_t _stride[],
00121                                    const hsize_t count[],
00122                                    const hsize_t _block[]);
00123 H5_DLL herr_t H5Sselect_select(hid_t space1_id, H5S_seloper_t op,
00124                                   hid_t space2_id);
00125 H5_DLL hid_t H5Scombine_select(hid_t space1_id, H5S_seloper_t op,
00126                                   hid_t space2_id);
00127 #endif 
00128 H5_DLL herr_t H5Sselect_elements(hid_t space_id, H5S_seloper_t op,
00129     size_t num_elem, const hsize_t *coord);
00130 H5_DLL H5S_class_t H5Sget_simple_extent_type(hid_t space_id);
00131 H5_DLL herr_t H5Sset_extent_none(hid_t space_id);
00132 H5_DLL herr_t H5Sextent_copy(hid_t dst_id,hid_t src_id);
00133 H5_DLL htri_t H5Sextent_equal(hid_t sid1, hid_t sid2);
00134 H5_DLL herr_t H5Sselect_all(hid_t spaceid);
00135 H5_DLL herr_t H5Sselect_none(hid_t spaceid);
00136 H5_DLL herr_t H5Soffset_simple(hid_t space_id, const hssize_t *offset);
00137 H5_DLL htri_t H5Sselect_valid(hid_t spaceid);
00138 H5_DLL hssize_t H5Sget_select_hyper_nblocks(hid_t spaceid);
00139 H5_DLL hssize_t H5Sget_select_elem_npoints(hid_t spaceid);
00140 H5_DLL herr_t H5Sget_select_hyper_blocklist(hid_t spaceid, hsize_t startblock,
00141     hsize_t numblocks, hsize_t buf[]);
00142 H5_DLL herr_t H5Sget_select_elem_pointlist(hid_t spaceid, hsize_t startpoint,
00143     hsize_t numpoints, hsize_t buf[]);
00144 H5_DLL herr_t H5Sget_select_bounds(hid_t spaceid, hsize_t start[],
00145     hsize_t end[]);
00146 H5_DLL H5S_sel_type H5Sget_select_type(hid_t spaceid);
00147 
00148 #ifdef __cplusplus
00149 }
00150 #endif
00151 #endif 
00152