Generated on Mon Jul 6 18:09:15 2009 for Gecode by doxygen 1.5.9

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: 2009-02-23 22:57:19 +0100 (Mon, 23 Feb 2009) $ by $Author: schulte $
00015  *     $Revision: 8272 $
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 
00075 // Configure auto-linking
00076 #ifndef GECODE_BUILD_KERNEL
00077 #define GECODE_LIBRARY_NAME "Kernel"
00078 #include <gecode/support/auto-link.hpp>
00079 #endif
00080 
00094 /*
00095  * General exceptions and kernel exceptions
00096  *
00097  */
00098 
00099 #include <gecode/kernel/exception.hpp>
00100 
00101 
00102 
00103 /*
00104  * Basic kernel services
00105  *
00106  */
00107 
00108 #include <gecode/kernel/memory-config.hpp>
00109 #include <gecode/kernel/memory-manager.hpp>
00110 
00111 
00112 /*
00113  * Macros for checking failure
00114  *
00115  */
00116 
00117 #include <gecode/kernel/macros.hpp>
00118 
00119 
00120 /*
00121  * Gecode kernel
00122  *
00123  */
00124 
00125 #include <gecode/kernel/core.hpp>
00126 #include <gecode/kernel/modevent.hpp>
00127 
00128 
00129 /*
00130  * Region memory management
00131  *
00132  */
00133 
00134 #include <gecode/kernel/region.hpp>
00135 
00136 
00137 /*
00138  * Traits linking variables, views, and variable implementations
00139  *
00140  */
00141 
00142 #include <gecode/kernel/var-traits.hpp>
00143 
00144 
00145 /*
00146  * Variables and testing for shared variables
00147  *
00148  */
00149 
00150 #include <gecode/kernel/var.hpp>
00151 
00152 
00153 /*
00154  * Views
00155  *
00156  */
00157 
00158 #include <gecode/kernel/view.hpp>
00159 
00160 
00161 /*
00162  * Variable and argument arrays
00163  *
00164  */
00165 
00166 #include <gecode/kernel/array.hpp>
00167 
00168 
00169 /*
00170  * Shared arrays
00171  *
00172  */
00173 
00174 #include <gecode/kernel/shared-array.hpp>
00175 
00176 
00177 /*
00178  * Common propagator and branching patterns
00179  *
00180  */
00181 
00182 #include <gecode/kernel/propagator.hpp>
00183 #include <gecode/kernel/advisor.hpp>
00184 #include <gecode/kernel/branch.hpp>
00185 #include <gecode/kernel/branching.hpp>
00186 #include <gecode/kernel/branching-view.hpp>
00187 #include <gecode/kernel/branching-tiebreak.hpp>
00188 #include <gecode/kernel/branching-val.hpp>
00189 
00190 
00191 /*
00192  * Automatically generated variable implementations
00193  *
00194  */
00195 
00196 #include <gecode/kernel/var-imp.hpp>
00197 
00198 /*
00199  * Allocator support
00200  *
00201  */
00202 
00203 #include <gecode/kernel/allocators.hpp>
00204 
00205 #endif
00206 
00207 // STATISTICS: kernel-other