1 // -*- mode: c++; c-basic-offset:4 -*-
2 
3 // This file is part of libdap, A C++ implementation of the OPeNDAP Data
4 // Access Protocol.
5 
6 // Copyright (c) 2013 OPeNDAP, Inc.
7 // Author: James Gallagher <jgallagher@opendap.org>
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU Lesser General Public
11 // License as published by the Free Software Foundation; either
12 // version 2.1 of the License, or (at your option) any later version.
13 //
14 // This library is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 // Lesser General Public License for more details.
18 //
19 // You should have received a copy of the GNU Lesser General Public
20 // License along with this library; if not, write to the Free Software
21 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22 //
23 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
24 
25 #ifndef TYPE_H_
26 #define TYPE_H_
27 
28 namespace libdap {
29 
30 /** <b>Part</b> names the parts of multi-section constructor types.
31     For example, the <b>Grid</b> class has an <i>array</i> and
32     the array <i>maps</i>. Use the <tt>nil</tt> value for data types that
33     don't have separate parts.
34 
35     \code
36     enum Part {
37     nil,
38     array,
39     maps
40     };
41     \endcode
42 
43     @brief Names the parts of multi-section constructor data types.
44     @see Grid
45     @see BaseType
46 */
47 
48 enum Part {
49     nil,   // nil is for types that don't have parts...
50     array,
51     maps
52 };
53 
54 /** <b>Type</b> identifies the data type stored in a particular type
55     class. All the DODS Data Access Protocol (DAP) types inherit from
56     the BaseType class.
57 
58     \code
59     enum Type {
60     dods_null_c,
61     dods_byte_c,
62     dods_int16_c,
63     dods_uint16_c,
64     dods_int32_c,
65     dods_uint32_c,
66     dods_float32_c,
67     dods_float64_c,
68     dods_str_c,
69     dods_url_c,
70 
71     dods_structure_c,
72     dods_array_c,
73     dods_sequence_c,
74 
75     dods_grid_c,
76 
77     dods_char_c,
78     dods_int8_c,
79     dods_uint8_c,
80 
81     dods_int64_c,
82     dods_uint64_c,
83     dods_enum_c,
84     dods_opaque_c,
85     dods_group_c
86 
87     };
88     \endcode
89 
90     @brief Identifies the data type.
91     @see BaseType
92 */
93 
94 enum Type {
95     dods_null_c,
96     dods_byte_c,
97     dods_int16_c,
98     dods_uint16_c,
99     dods_int32_c,  // Added `dods_' to fix clash with IRIX 5.3.
100     dods_uint32_c,
101     dods_float32_c,
102     dods_float64_c,
103     dods_str_c,
104     dods_url_c,
105 
106     dods_structure_c,
107     dods_array_c,
108     dods_sequence_c,
109 
110     // Not used for DAP4
111     dods_grid_c,
112 
113     // Added for DAP4
114     dods_char_c,	// a synonym for UInt8 (and Byte)
115     dods_int8_c,
116     dods_uint8_c,
117 
118     dods_int64_c,
119     dods_uint64_c,
120     dods_enum_c,
121     dods_opaque_c,
122     dods_group_c
123 };
124 
125 } // namespace libdap
126 
127 #endif /* TYPE_H_ */
128