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