rasdaman complete source
mddtypes.hh
Go to the documentation of this file.
1 /*
2 * This file is part of rasdaman community.
3 *
4 * Rasdaman community is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * Rasdaman community is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
16 *
17 * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
18 rasdaman GmbH.
19 *
20 * For more information please see <http://www.rasdaman.org>
21 * or contact Peter Baumann via <baumann@rasdaman.com>.
22 /
36 #ifndef _D_MDDTYPES_
37 #define _D_MDDTYPES_
38 
39 
40 #ifdef __VISUALC__
41 #include <strstrea.h>
42 #else
43 #include <sstream>
44 #endif
45 
46 #include <stdint.h>
47 
48 //typedef unsigned int uint32;
49 //typedef int int32;
50 
51 //@Man: r_Bytes
52 //@Type: typedef
53 //@Args: as unsigned int
54 //@Memo: Module: {\bf raslib}.
55 
56 typedef unsigned int r_Bytes;
57 
64 //@Man: r_Ptr
65 //@Type: typedef
66 //@Args: as unsigned long
67 //@Memo: Module: {\bf raslib}.
68 
69 typedef unsigned long r_Ptr;
70 
80 //@Man: r_Area
81 //@Type: typedef
82 //@Args: as unsigned int
83 //@Memo: Module: {\bf raslib}.
84 
85 typedef uint64_t r_Area;
86 
95 //@Man: r_Range
96 //@Type: typedef
97 //@Args: as int
98 //@Memo: Module: {\bf raslib}.
99 
100 typedef int r_Range;
101 
113 //@Man: r_Dimension
114 //@Type: typedef
115 //@Args: as unsigned int
116 //@Memo: Module: {\bf raslib}.
117 
118 typedef unsigned int r_Dimension;
119 
128 //@Man: r_Data_Format
129 //@Type: enum
130 //@Args:
131 //@Memo: Module: {\bf raslib}.
132 
133 enum r_Data_Format
134 {
135  r_Array,
136  r_TIFF,
137  r_JPEG,
138  r_HDF,
139  r_NETCDF,
140  r_CSV,
141  r_PNG,
142  r_ZLib,
143  r_Auto_Compression,
144  r_BMP,
145  r_RLE,
146  r_Wavelet_Haar,
147  r_Wavelet_Daubechies, // = Daubechies 4 tap
148  r_Sep_ZLib,
149  r_Sep_RLE,
150  r_Wavelet_Daub6,
151  r_Wavelet_Daub8,
152  r_Wavelet_Daub10,
153  r_Wavelet_Daub12,
154  r_Wavelet_Daub14,
155  r_Wavelet_Daub16,
156  r_Wavelet_Daub18,
157  r_Wavelet_Daub20,
158  r_Wavelet_Least8,
159  r_Wavelet_Least10,
160  r_Wavelet_Least12,
161  r_Wavelet_Least14,
162  r_Wavelet_Least16,
163  r_Wavelet_Least18,
164  r_Wavelet_Least20,
165  r_Wavelet_Coiflet6,
166  r_Wavelet_Coiflet12,
167  r_Wavelet_Coiflet18,
168  r_Wavelet_Coiflet24,
169  r_Wavelet_Coiflet30,
170  r_VFF,
171  r_Wavelet_QHaar,
172  r_PPM,
173  r_TOR,
174  r_DEM,
175  r_Pack_Bits,
176  r_ECW,
177  r_TMC,
178  r_NTF,
179  r_Data_Format_NUMBER
180 };
181 
217 //@ManMemo: Module: {\bf raslib}
227 extern const char *format_name_array;
228 extern const char *format_name_tiff;
229 extern const char *format_name_jpeg;
230 extern const char *format_name_hdf;
231 extern const char *format_name_netcdf;
232 extern const char *format_name_png;
233 extern const char *format_name_zlib;
234 extern const char *format_name_auto_compression;
235 extern const char *format_name_bmp;
236 extern const char *format_name_ppm;
237 extern const char *format_name_rle;
238 extern const char *format_name_wavelet_haar;
239 extern const char *format_name_wavelet_daubechies;
240 extern const char *format_name_sep_zlib;
241 extern const char *format_name_sep_rle;
242 extern const char *format_name_wavelet_daub6;
243 extern const char *format_name_wavelet_daub8;
244 extern const char *format_name_wavelet_daub10;
245 extern const char *format_name_wavelet_daub12;
246 extern const char *format_name_wavelet_daub14;
247 extern const char *format_name_wavelet_daub16;
248 extern const char *format_name_wavelet_daub18;
249 extern const char *format_name_wavelet_daub20;
250 extern const char *format_name_wavelet_least8;
251 extern const char *format_name_wavelet_least10;
252 extern const char *format_name_wavelet_least12;
253 extern const char *format_name_wavelet_least14;
254 extern const char *format_name_wavelet_least16;
255 extern const char *format_name_wavelet_least18;
256 extern const char *format_name_wavelet_least20;
257 extern const char *format_name_wavelet_coiflet6;
258 extern const char *format_name_wavelet_coiflet12;
259 extern const char *format_name_wavelet_coiflet18;
260 extern const char *format_name_wavelet_coiflet24;
261 extern const char *format_name_wavelet_coiflet30;
262 extern const char *format_name_vff;
263 extern const char *format_name_tor;
264 extern const char *format_name_dem;
265 extern const char *format_name_pack_bits;
266 extern const char *format_name_wavelet_qhaar;
267 extern const char *format_name_tmc;
268 extern const char *format_name_ntf;
269 
270 extern const char *all_data_format_names[r_Data_Format_NUMBER];
271 
272 //@ManMemo: Module: {\bf raslib}
276 const char *get_name_from_data_format( r_Data_Format fmt );
277 
278 //@ManMemo: Module: {\bf raslib}
282 r_Data_Format get_data_format_from_name ( const char *name );
283 
284 
285 //@ManMemo: Module: {\bf raslib}
289 extern std::ostream& operator<<( std::ostream& s, const r_Data_Format& d );
290 
291 
292 
293 //@ManMemo: Module: {\bf raslib}
297 extern std::ostream& operator<<( std::ostream& s, r_Data_Format& d );
298 
299 //@Man: r_Scale_Function
300 //@Type: enum
301 //@Args:
302 //@Memo: Module: {\bf raslib}.
303 
304 enum r_Scale_Function
305 {
306  r_SubSampling,
307  r_BitAggregation,
308  r_Scale_Function_NUMBER
309 };
310 
311 extern const char *scale_function_name_subsampling;
312 extern const char *scale_function_name_bitaggregation;
313 
314 extern const char *all_scale_function_names[r_Scale_Function_NUMBER];
315 
316 //@ManMemo: Module: {\bf raslib}
320 const char *get_name_from_scale_function(r_Scale_Function func);
321 
322 //@ManMemo: Module: {\bf raslib}
326 r_Scale_Function get_scale_function_from_name(const char *name);
327 
328 
329 //@ManMemo: Module: {\bf raslib}
333 extern std::ostream& operator<<( std::ostream& s, const r_Scale_Function& d );
334 
335 
336 //@Man: r_Index_Type
337 //@Type: enum
338 //@Args:
339 //@Memo: Module: {\bf raslib}.
340 
341 enum r_Index_Type
342 {
343  r_Invalid_Index = -1,
344  r_Auto_Index = 0,
345  r_Directory_Index = 1,
346  r_Reg_Directory_Index = 2,
347  r_RPlus_Tree_Index = 3,
348  r_Reg_RPlus_Tree_Index = 4,
349  r_Tile_Container_Index = 5,
350  r_Reg_Computed_Index = 6,
351  r_Index_Type_NUMBER = 7
352 };
353 
354 extern std::ostream& operator<<(std::ostream& in, r_Index_Type type);
355 
356 //@ManMemo: Module: {\bf raslib}
366 extern const char *index_name_auto;
367 extern const char *index_name_directory;
368 extern const char *index_name_regdirectory;
369 extern const char *index_name_rplustree;
370 extern const char *index_name_regrplustree;
371 extern const char *index_name_tilecontainer;
372 extern const char *index_name_regcomputed;
373 
374 extern const char *all_index_type_names[r_Index_Type_NUMBER];
375 
376 //@ManMemo: Module: {\bf raslib}
380 const char *get_name_from_index_type( r_Index_Type it );
381 
382 //@ManMemo: Module: {\bf raslib}
386 r_Index_Type get_index_type_from_name ( const char *name );
387 
388 //@Man: r_Tiling_Scheme
389 //@Type: enum
390 //@Args:
391 //@Memo: Module: {\bf raslib}.
392 
393 enum r_Tiling_Scheme
394 {
395  r_NoTiling = 0,
396  r_RegularTiling = 1,
397  r_StatisticalTiling = 2,
398  r_InterestTiling = 3,
399  r_AlignedTiling = 4,
400  r_DirectionalTiling = 5,
401  r_SizeTiling = 6,
402  r_Tiling_Scheme_NUMBER = 7
403 };
425 //@ManMemo: Module: {\bf raslib}
435 extern const char *tiling_name_notiling;
436 extern const char *tiling_name_regulartiling;
437 extern const char *tiling_name_statisticaltiling;
438 extern const char *tiling_name_interesttiling;
439 extern const char *tiling_name_alignedtiling;
440 extern const char *tiling_name_directionaltiling;
441 extern const char *tiling_name_sizetiling;
442 
443 extern const char *all_tiling_scheme_names[r_Tiling_Scheme_NUMBER];
444 
445 //@ManMemo: Module: {\bf raslib}
449 const char *get_name_from_tiling_scheme( r_Tiling_Scheme ts );
450 
451 //@ManMemo: Module: {\bf raslib}
455 r_Tiling_Scheme get_tiling_scheme_from_name ( const char *name );
456 
457 //@ManMemo: Module: {\bf raslib}
461 extern std::ostream& operator<<(std::ostream& in, r_Tiling_Scheme type);
462 
463 //@Man: r_Clustering_Scheme
464 //@Type: enum
465 //@Args:
466 //@Memo: Module: {\bf raslib}.
467 enum r_Clustering_Scheme
468 {
469  r_Insertion_Order_Clustering = 1,
470  r_Coords_Order_Clustering = 2,
471  r_Index_Cluster_Clustering = 3,
472  r_Based_Cluster_Stat_Clustering = 4
473 };
491 extern std::ostream& operator<<(std::ostream& in, r_Clustering_Scheme type);
492 
493 #ifdef __VISUALC__
494 extern int strcasecmp( const char *str1, const char *str2 );
495 #endif
496 
497 #endif