Generated on Mon Aug 25 11:35:39 2008 for Gecode by doxygen 1.5.6

kernel.hh

Go to the documentation of this file.
00001 /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
00002 /*
00003  *  Main authors:
00004  *     Christian Schulte <schulte@gecode.org>
00005  *
00006  *  Contributing authors:
00007  *     Guido Tack <tack@gecode.org>
00008  *
00009  *  Copyright:
00010  *     Christian Schulte, 2004
00011  *     Guido Tack, 2004
00012  *
00013  *  Last modified:
00014  *     $Date: 2008-07-11 10:10:11 +0200 (Fri, 11 Jul 2008) $ by $Author: tack $
00015  *     $Revision: 7310 $
00016  *
00017  *  This file is part of Gecode, the generic constraint
00018  *  development environment:
00019  *     http://www.gecode.org
00020  *
00021  *  Permission is hereby granted, free of charge, to any person obtaining
00022  *  a copy of this software and associated documentation files (the
00023  *  "Software"), to deal in the Software without restriction, including
00024  *  without limitation the rights to use, copy, modify, merge, publish,
00025  *  distribute, sublicense, and/or sell copies of the Software, and to
00026  *  permit persons to whom the Software is furnished to do so, subject to
00027  *  the following conditions:
00028  *
00029  *  The above copyright notice and this permission notice shall be
00030  *  included in all copies or substantial portions of the Software.
00031  *
00032  *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
00033  *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00034  *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
00035  *  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
00036  *  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
00037  *  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
00038  *  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00039  *
00040  */
00041 
00042 #ifndef __GECODE_KERNEL_HH__
00043 #define __GECODE_KERNEL_HH__
00044 
00045 #include <cstddef>
00046 #include <cstdlib>
00047 #include <cstring>
00048 #include <cassert>
00049 
00050 #include "gecode/support.hh"
00051 
00052 /*
00053  * Configure linking
00054  *
00055  */
00056 #if !defined(GECODE_STATIC_LIBS) && \
00057     (defined(__CYGWIN__) || defined(__MINGW32__) || defined(_MSC_VER))
00058 
00059 #ifdef GECODE_BUILD_KERNEL
00060 #define GECODE_KERNEL_EXPORT __declspec( dllexport )
00061 #else
00062 #define GECODE_KERNEL_EXPORT __declspec( dllimport )
00063 #endif
00064 
00065 #else
00066 
00067 #ifdef GECODE_GCC_HAS_CLASS_VISIBILITY
00068 #define GECODE_KERNEL_EXPORT __attribute__ ((visibility("default")))
00069 #else
00070 #define GECODE_KERNEL_EXPORT
00071 #endif
00072 
00073 #endif
00074 
00088 /*
00089  * General exceptions and kernel exceptions
00090  *
00091  */
00092 
00093 #include "gecode/kernel/exception.icc"
00094 
00095 
00096 
00097 /*
00098  * Basic kernel services
00099  *
00100  */
00101 
00102 #include "gecode/kernel/memory-manager.icc"
00103 
00104 
00105 /*
00106  * Macros for checking failure
00107  *
00108  */
00109 
00110 
00111 #include "gecode/kernel/macros.icc"
00112 
00113 /*
00114  * Gecode kernel
00115  *
00116  */
00117 
00118 #include "gecode/kernel/core.icc"
00119 #include "gecode/kernel/modevent.icc"
00120 
00121 /*
00122  * Traits linking variables, views, and variable implementations
00123  *
00124  */
00125 
00126 #include "gecode/kernel/var-traits.icc"
00127 
00128 /*
00129  * Variables and testing for shared variables
00130  *
00131  */
00132 
00133 #include "gecode/kernel/var.icc"
00134 
00135 /*
00136  * Access to the constraint graph
00137  *
00138  */
00139 
00140 #include "gecode/kernel/reflection.icc"
00141 
00142 /*
00143  * Views
00144  *
00145  */
00146 
00147 #include "gecode/kernel/view.icc"
00148 
00149 /*
00150  * Variable and argument arrays
00151  *
00152  */
00153 
00154 #include "gecode/kernel/array.icc"
00155 
00156 /*
00157  * Access to the constraint graph
00158  *
00159  */
00160 
00161 #include "gecode/kernel/var-map.icc"
00162 
00163 /*
00164  * Shared arrays
00165  *
00166  */
00167 
00168 #include "gecode/kernel/shared-array.icc"
00169 
00170 /*
00171  * Common propagator and branching patterns
00172  *
00173  */
00174 
00175 #include "gecode/kernel/propagator.icc"
00176 #include "gecode/kernel/advisor.icc"
00177 #include "gecode/kernel/branching.icc"
00178 
00179 /*
00180  * Automatically generated variable implementations
00181  *
00182  */
00183 
00184 #include "gecode/kernel/var-imp.icc"
00185 
00186 #endif
00187 
00188 // STATISTICS: kernel-other