00001 // Basic Types -*- C++ -*- 00002 00003 // $Id: vdbl_types.h 634 2008-05-20 14:28:14Z herman $ 00004 // Copyright (C) 2003 Hermann Schichl 00005 // 00006 // This file is part of the Vienna Database Library. This library is free 00007 // software; you can redistribute it and/or modify it under the 00008 // terms of the Library GNU General Public License as published by the 00009 // Free Software Foundation; either version 2, or (at your option) 00010 // 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 00015 // Library GNU General Public License for more details. 00016 00017 // As a special exception, you may use this file as part of a free software 00018 // library without restriction. Specifically, if other files instantiate 00019 // templates or use macros or inline functions from this file, or you compile 00020 // this file and link it with other files to produce an executable, this 00021 // file does not by itself cause the resulting executable to be covered by 00022 // the Library GNU General Public License. This exception does not however 00023 // invalidate any other reasons why the executable file might be covered by 00024 // the Library GNU General Public License. 00025 00031 #ifndef __VDBL_TYPES_H 00032 #define __VDBL_TYPES_H 00033 00034 #include <stdint.h> 00035 #include <vdbl_config.h> 00036 #include <string> 00037 #include <vector> 00038 #include <typeinfo> 00039 00040 __VDBL_BEGIN_NAMESPACE 00041 00042 #if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32) 00043 #pragma set woff 1209 00044 #endif 00045 00059 00060 00066 class _VDBL_colflags 00067 { 00068 public: 00070 00071 bool master_index; 00072 bool has_default; 00074 00076 _VDBL_colflags(bool __d = false, bool __mi = false) 00077 : master_index(__mi), has_default(__d) {} 00079 ~_VDBL_colflags() {} 00080 }; 00081 00085 typedef uint32_t _VDBL_userid; 00089 typedef uint32_t _VDBL_viewid; 00093 typedef uint64_t _VDBL_colid; 00097 typedef uint64_t _VDBL_rowid; 00101 typedef uint32_t _VDBL_tableid; 00102 00104 00121 typedef enum { V_hole, 00122 V_window, 00123 V_transparent, 00124 V_frozen, 00125 V_materialized, 00126 V_independent 00127 } _V_enum; 00128 00141 #define VDBL_MAXUSERID ((__VDBL::_VDBL_userid)-1) 00142 00146 #define VDBL_MAXVIEWID ((__VDBL::_VDBL_viewid)-1) 00147 00151 #define VDBL_MAXCOLID ((__VDBL::_VDBL_colid)-1) 00152 00156 #define VDBL_MAXROWID ((__VDBL::_VDBL_rowid)-1) 00157 00161 #define VDBL_MAXTABLEID ((__VDBL::_VDBL_tableid)-1) 00162 00164 00167 typedef _VDBL_userid userid; 00169 00172 typedef _VDBL_viewid viewid; 00174 00177 typedef _VDBL_colid colid; 00179 00182 typedef _VDBL_rowid rowid; 00184 00187 typedef _VDBL_tableid tableid; 00189 00192 typedef _VDBL_colflags colflags; 00193 00195 00198 typedef _V_enum view_enum; 00199 00202 __VDBL_END_NAMESPACE 00203 00204 #endif /* __VDBL_TYPES_H */ 00205 00206 // Local Variables: 00207 // mode:C++ 00208 // End: