• Classes
  • Modules
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

cdbData_Types.h

Go to the documentation of this file.
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 // ************************************************************************

Generated on Thu Jan 12 2012 23:13:50 for ACS-10.0 C++ API by  doxygen 1.7.0