00001 #ifndef __cdb__Data_Types_h__ 00002 #define __cdb__Data_Types_h__ 00003 /******************************************************************************* 00004 * ALMA - Atacama Large Millimiter Array 00005 * Copyright (c) European Southern Observatory, 2011 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 * 00021 * "@(#) $Id: cdbData_Types.h,v 1.26 2011/10/28 15:05:05 hsommer Exp $" 00022 * 00023 * who when what 00024 * -------- -------- ---------------------------------------------- 00025 * almadev 2011-10-28 created 00026 */ 00027 00028 #include "acsutil.h" 00029 #include "cdbExport.h" 00030 00031 #if defined(CDB_HAS_ANY) 00032 // We need TAO to provide the definition of the Any type and of portable 00033 // scalar data types. 00034 #include <tao/corba.h> 00035 00036 #include <orbsvcs/orbsvcs/DsLogAdminC.h> // DsLogAdmin::Anys support 00037 00038 #endif // defined(CDB_HAS_ANY) 00039 00040 #include <vector> 00041 #include <ace/SString.h> 00042 00043 namespace cdb { 00044 00045 // ------------------------------------------------------------------------ 00046 // GROUP = Scalar data types 00047 // ------------------------------------------------------------------------ 00048 00049 //typedef std::string String; 00050 typedef ACE_CString String; 00051 00052 #if !defined(CDB_HAS_ANY) 00053 00054 // DESCRIPTION: An 8-bit unsigned integer. 00055 typedef unsigned char Octet; 00056 // DESCRIPTION: A TRUE/FALSE boolean value. 00057 typedef bool Boolean; 00058 00059 // DESCRIPTION: A 16-bit signed integer. 00060 typedef signed short Short; 00061 // DESCRIPTION: A 32-bit signed integer. 00062 typedef signed long Long; 00063 00064 // DESCRIPTION: A 16-bit unsigned integer. 00065 typedef unsigned short UShort; 00066 // DESCRIPTION: A 32-bin unsigned integer. 00067 typedef unsigned long ULong; 00068 00069 #if defined(__GNUG__) 00070 // DESCRIPTION: A 64-bin signed integer. 00071 typedef signed long long LongLong; 00072 // DESCRIPTION: A 64-bin unsigned integer. 00073 typedef unsigned long long ULongLong; 00074 #elif _MSC_VER >= 1100 00075 typedef signed __int64 LongLong; 00076 typedef unsigned __int64 ULongLong; 00077 #endif // _MSC_VER >= 1100 00078 00079 // DESCRIPTION: IEEE compliant 4-byte floating point (single precision). 00080 typedef float Float; 00081 // DESCRIPTION: IEEE compliant 8-byte floating point (double precision). 00082 typedef double Double; 00083 00084 #if !defined(FALSE) 00085 //{partOf: Boolean} 00086 # define FALSE 0 00087 #endif 00088 #if !defined(TRUE) 00089 //{partOf: Boolean} 00090 # define TRUE 1 00091 #endif 00092 00093 #else 00094 00095 // 00096 // If we are using the Any type, we must have included ACE. We therefore 00097 // wrap ACE's datatypes to make use of its portability guarantees. 00098 // 00099 typedef DsLogAdmin::Anys Anys; 00100 00101 typedef CORBA::Any Any; 00102 typedef CORBA::Octet Octet; 00103 typedef CORBA::Boolean Boolean; 00104 00105 typedef CORBA::Short Short; 00106 typedef CORBA::Long Long; 00107 typedef CORBA::LongLong LongLong; 00108 00109 typedef CORBA::UShort UShort; 00110 typedef CORBA::ULong ULong; 00111 typedef CORBA::ULongLong ULongLong; 00112 00113 typedef CORBA::Float Float; 00114 typedef CORBA::Double Double; 00115 00116 #if !defined(FALSE) 00117 # define FALSE 0 00118 # define TRUE 1 00119 #endif 00120 00121 #endif // defined(CDB_HAS_ANY) 00122 00123 #if defined(__GNUG__) 00124 00125 // 00126 // DESCRIPTION: Macro for specifying 64-bit integer literals. 00127 // 00128 // EXAMPLE: 00129 // 00130 // ULongLong ull = CDB_ULONGLONG(0x8000000000000000); 00131 // 00132 # define CDB_LONGLONG(n) n##LL 00133 00134 //{partOf:CDB_LONGLONG} 00135 # define CDB_ULONGLONG(n) n##ULL 00136 00137 #elif _MSC_VER >= 1100 00138 00139 # define CDB_LONGLONG(n) n 00140 # define CDB_ULONGLONG(n) n 00141 00142 #endif // _MSC_VER >= 1100 00143 00144 // ------------------------------------------------------------------------ 00145 // GROUP = Arrays 00146 // ------------------------------------------------------------------------ 00147 00148 #if defined(CDB_HAS_ANY) 00149 //{partOf:Arrays} 00150 typedef std::vector<Any> AnyArray; 00151 #endif // defined(CDB_HAS_ANY) 00152 00153 //{partOf:Arrays} 00154 typedef std::vector<String> StringArray; 00155 //{partOf:Arrays} 00156 typedef std::vector<Octet> OctetArray; 00157 00158 //{partOf:Arrays} 00159 typedef std::vector<Short> ShortArray; 00160 //{partOf:Arrays} 00161 typedef std::vector<Long> LongArray; 00162 //{partOf:Arrays} 00163 typedef std::vector<LongLong> LongLongArray; 00164 00165 typedef std::vector<UShort> UShortArray; 00166 typedef std::vector<ULong> ULongArray; 00167 typedef std::vector<ULongLong> ULongLongArray; 00168 00169 typedef std::vector<Float> FloatArray; 00170 typedef std::vector<Double> DoubleArray; 00171 00172 }; 00173 00174 #endif // __cdb__Data_Types_h__ 00175 00176 // ************************************************************************ 00177 // 00178 // REVISION HISTORY: 00179 // 00180 // $Log: cdbData_Types.h,v $ 00181 // Revision 1.26 2011/10/28 15:05:05 hsommer 00182 // Manually fixed "no LGPL license text" issue reported by addCopyright.py 00183 // 00184 // Revision 1.25 2006/09/01 02:20:54 cparedes 00185 // small change, NAMESPACE_BEGIN / NAMESPACE_END / NAMESPACE_USE macross to clean up a little the cpp code 00186 // 00187 // Revision 1.24 2003/01/28 16:43:49 vltsccm 00188 // gchiozzi: patch for cdb module to create lib/endorsed directory, since CVS cannot restore empty directories 00189 // 00190 // Revision 1.23 2003/01/24 10:44:03 vltsccm 00191 // cdb1.23 00192 // 00193 // Revision 1.22 2003/01/20 15:12:19 vltsccm 00194 // cdb1.22 00195 // 00196 // Revision 1.21 2003/01/20 10:45:53 vltsccm 00197 // cdb1.21 00198 // 00199 // Revision 1.20 2002/12/05 16:03:58 vltsccm 00200 // cdb1.20 00201 // 00202 // Revision 1.19 2002/11/25 16:04:49 vltsccm 00203 // cdb1.19 00204 // 00205 // Revision 1.18 2002/11/13 14:53:04 vltsccm 00206 // cdb1.18 00207 // 00208 // Revision 1.17 2002/11/13 10:22:30 vltsccm 00209 // cdb1.17 00210 // 00211 // Revision 1.16 2002/11/06 08:37:04 vltsccm 00212 // cdb1.16 00213 // 00214 // Revision 1.15.1.23 2002/11/05 16:05:13 vltsccm 00215 // cdb1.15.1.23 00216 // 00217 // Revision 1.15.1.22 2002/11/05 13:46:30 vltsccm 00218 // cdb1.15.1.22 00219 // 00220 // Revision 1.15.1.21 2002/11/05 10:41:14 vltsccm 00221 // cdb1.15.1.21 00222 // 00223 // Revision 1.15.1.20 2002/11/01 12:49:02 vltsccm 00224 // cdb1.15.1.20 00225 // 00226 // Revision 1.15.1.19 2002/10/30 07:56:43 vltsccm 00227 // cdb1.15.1.19 00228 // 00229 // Revision 1.15.1.18 2002/10/25 12:44:23 vltsccm 00230 // cdb1.15.1.18 00231 // 00232 // Revision 1.15.1.17 2002/10/24 13:08:43 vltsccm 00233 // cdb1.15.1.17 00234 // 00235 // Revision 1.15.1.16 2002/10/16 11:43:44 vltsccm 00236 // cdb1.15.1.16 00237 // 00238 // Revision 1.15.1.15 2002/10/14 22:26:09 vltsccm 00239 // cdb1.15.1.15 00240 // 00241 // Revision 1.15.1.14 2002/10/14 12:18:32 vltsccm 00242 // cdb1.15.1.14 00243 // 00244 // Revision 1.15.1.13 2002/10/04 16:20:23 vltsccm 00245 // cdb1.15.1.13 00246 // 00247 // Revision 1.15.1.12 2002/10/02 12:54:14 vltsccm 00248 // cdb1.15.1.12 00249 // 00250 // Revision 1.15.1.11 2002/10/01 10:33:25 vltsccm 00251 // cdb1.15.1.11 00252 // 00253 // Revision 1.15.1.10 2002/09/30 13:56:51 vltsccm 00254 // cdb1.15.1.10 00255 // 00256 // Revision 1.15.1.9 2002/09/26 14:13:10 vltsccm 00257 // cdb1.15.1.9 00258 // 00259 // Revision 1.15.1.8 2002/09/26 07:45:46 vltsccm 00260 // cdb1.15.1.8 00261 // 00262 // Revision 1.15.1.7 2002/09/17 16:19:22 vltsccm 00263 // cdb1.15.1.7 00264 // 00265 // Revision 1.15.1.6 2002/09/17 11:15:47 vltsccm 00266 // cdb1.15.1.6 00267 // 00268 // Revision 1.15.1.5 2002/09/02 09:37:06 vltsccm 00269 // cdb1.15.1.5 00270 // 00271 // Revision 1.15.1.4 2002/08/09 09:35:22 vltsccm 00272 // cdb1.15.1.4 00273 // 00274 // Revision 1.15.1.3 2002/07/24 07:29:10 vltsccm 00275 // cdb1.15.1.3 00276 // 00277 // Revision 1.15.1.2 2002/07/12 09:58:16 vltsccm 00278 // cdb1.15.1.2 00279 // 00280 // Revision 1.15+.1.1 2002/07/09 09:40:08 vltsccm 00281 // cdb1.15.1 00282 // 00283 // Revision 1.15 2002/02/05 17:50:07 vltsccm 00284 // cdb1.15 00285 // 00286 // Revision 1.14 2002/01/14 21:14:18 vltsccm 00287 // cdb1.14 00288 // 00289 // Revision 1.13 2001/10/19 09:56:22 vltsccm 00290 // cdb1.13 00291 // 00292 // Revision 1.12 2001/09/18 10:07:11 vltsccm 00293 // cdb1.12 00294 // 00295 // Revision 1.11 2001/07/12 07:48:26 vltsccm 00296 // cdb1.11 00297 // 00298 // Revision 1.10 2001/07/11 09:16:13 vltsccm 00299 // cdb1.10 00300 // 00301 // Revision 1.6 2000/12/07 18:00:40 vltsccm 00302 // cdb1.6 00303 // 00304 // Revision 1.5 2000/11/17 13:14:56 vltsccm 00305 // cdb1.5 00306 // 00307 // Revision 1.4 2000/10/20 13:51:16 vltsccm 00308 // cdb1.4 00309 // 00310 // Revision 1.3 2000/10/20 13:51:15 vltsccm 00311 // cdb1.3 00312 // 00313 // Revision 1.2 2000/10/20 13:51:15 vltsccm 00314 // cdb1.2 00315 // 00316 // Revision 1.1 2000/10/20 13:51:15 vltsccm 00317 // cdb1.1 00318 // 00319 // Revision 1.0 2000/10/20 13:51:14 vltsccm 00320 // cdb1.0 00321 // 00322 // Revision 1.3 2000/10/13 16:03:02 vltsccm 00323 // cdb1.3 00324 // 00325 // Revision 1.2 2000/09/13 14:49:28 vltsccm 00326 // cdb1.2 00327 // 00328 // Revision 1.1 2000/09/06 15:42:11 vltsccm 00329 // cdb1.1 00330 // 00331 // Revision 1.1 2000/06/13 07:26:24 kzagar 00332 // CDB, initial commit. Documentation not yet finished. 00333 // 00334 // ************************************************************************
1.7.0