00001 /* ///////////////////////////////////////////////////////////////////////// 00002 * File: pantheios/pantheios.hpp 00003 * 00004 * Purpose: Primary header file for Pantheios 00005 * 00006 * Created: 21st June 2005 00007 * Updated: 2nd September 2006 00008 * 00009 * Author: Matthew Wilson 00010 * 00011 * Home: http://www.pantheios.org/ 00012 * 00013 * Copyright: Matthew Wilson and Synesis Software Pty Ltd, 1999-2005. 00014 * Matthew Wilson, (c) 2005-2006. 00015 * 00016 * Redistribution and use in source and binary forms, with or without 00017 * modification, are permitted provided that the following conditions are met: 00018 * 00019 * - Redistributions of source code must retain the above copyright notice, this 00020 * list of conditions and the following disclaimer. 00021 * - Redistributions in binary form must reproduce the above copyright notice, 00022 * this list of conditions and the following disclaimer in the documentation 00023 * and/or other materials provided with the distribution. 00024 * - Neither the names of Matthew Wilson and Synesis Software nor the names of 00025 * any contributors may be used to endorse or promote products derived from 00026 * this software without specific prior written permission. 00027 * 00028 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00029 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00030 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00031 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 00032 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 00033 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 00034 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00035 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00036 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 00037 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00038 * POSSIBILITY OF SUCH DAMAGE. 00039 * 00040 * ////////////////////////////////////////////////////////////////////// */ 00041 00042 00054 #ifndef PANTHEIOS_INCL_PANTHEIOS_HPP_PANTHEIOS 00055 #define PANTHEIOS_INCL_PANTHEIOS_HPP_PANTHEIOS 00056 00057 /* ///////////////////////////////////////////////////////////////////////// 00058 * Version information 00059 */ 00060 00061 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION 00062 # define PANTHEIOS_VER_PANTHEIOS_HPP_PANTHEIOS_MAJOR 3 00063 # define PANTHEIOS_VER_PANTHEIOS_HPP_PANTHEIOS_MINOR 0 00064 # define PANTHEIOS_VER_PANTHEIOS_HPP_PANTHEIOS_REVISION 1 00065 # define PANTHEIOS_VER_PANTHEIOS_HPP_PANTHEIOS_EDIT 71 00066 #endif /* !PANTHEIOS_DOCUMENTATION_SKIP_SECTION */ 00067 00068 /* ///////////////////////////////////////////////////////////////////////// 00069 * Includes 00070 */ 00071 00072 /* Main Panthieos Header */ 00073 #include <pantheios/pantheios.h> 00074 00075 /* Now select various headers to bring in string access shims */ 00076 #include <stlsoft/shims/access/string/fwd.h> 00077 00078 #if !defined(PANTHEIOS_NO_INCLUDE_STLSOFT_SHIM_ACCESS_SHIMS) 00079 # include <stlsoft/shims/access/string.hpp> 00080 # include <stlsoft/shims/access/string/std/time.hpp> 00081 00082 /* Include shims for ATL, if 00083 * 00084 * - it's not been proscribed, by PANTHEIOS_NO_INCLUDE_ATLSTL_STRING_ACCESS, and either 00085 * - it's been explicitly requested, by PANTHEIOS_FORCE_INCLUDE_ATLSTL_STRING_ACCESS, or 00086 * - _ATL and _ATL_VER are defined 00087 */ 00088 # if !defined(PANTHEIOS_NO_INCLUDE_ATLSTL_STRING_ACCESS) && \ 00089 ( defined(PANTHEIOS_FORCE_INCLUDE_ATLSTL_STRING_ACCESS) || \ 00090 ( defined(_ATL) && \ 00091 defined(_ATL_VER))) 00092 # include <atlstl/shims/access/string.hpp> 00093 # endif /* ATL */ 00094 00095 /* Include shims for COM, if 00096 * 00097 * - it's not been proscribed, by PANTHEIOS_NO_INCLUDE_COMSTL_STRING_ACCESS, and either 00098 * - it's been explicitly requested, by PANTHEIOS_FORCE_INCLUDE_COMSTL_STRING_ACCESS, or 00099 * - WIN32 is defined 00100 */ 00101 # if !defined(PANTHEIOS_NO_INCLUDE_COMSTL_STRING_ACCESS) && \ 00102 ( defined(PANTHEIOS_FORCE_INCLUDE_COMSTL_STRING_ACCESS) || \ 00103 defined(WIN32)) 00104 # include <comstl/shims/access/string.hpp> 00105 # endif /* COM */ 00106 00107 /* Include shims for MFC, if 00108 * 00109 * - it's not been proscribed, by PANTHEIOS_NO_INCLUDE_MFCSTL_STRING_ACCESS, and either 00110 * - it's been explicitly requested, by PANTHEIOS_FORCE_INCLUDE_MFCSTL_STRING_ACCESS, or 00111 * - _AFX and _MFC_VER are defined 00112 */ 00113 # if !defined(PANTHEIOS_NO_INCLUDE_MFCSTL_STRING_ACCESS) && \ 00114 ( defined(PANTHEIOS_FORCE_INCLUDE_MFCSTL_STRING_ACCESS) || \ 00115 defined(_AFXDLL) || \ 00116 ( defined(_AFX) && \ 00117 defined(_MFC_VER))) 00118 # include <mfcstl/shims/access/string.hpp> 00119 # endif /* MFC */ 00120 00121 /* Include shims for UNIX, if 00122 * 00123 * - it's not been proscribed, by PANTHEIOS_NO_INCLUDE_UNIXSTL_STRING_ACCESS, and either 00124 * - it's been explicitly requested, by PANTHEIOS_FORCE_INCLUDE_UNIXSTL_STRING_ACCESS, or 00125 * - unix, __unix, __unix__ or UNIX is defined 00126 */ 00127 # if !defined(PANTHEIOS_NO_INCLUDE_WINSTL_STRING_ACCESS) && \ 00128 ( defined(PANTHEIOS_FORCE_INCLUDE_WINSTL_STRING_ACCESS) || \ 00129 ( defined(unix) || \ 00130 defined(__unix) || \ 00131 defined(__unix__) || \ 00132 defined(UNIX))) 00133 # include <unixstl/shims/access/string.hpp> 00134 # endif /* UNIX */ 00135 00136 /* Include shims for Windows, if 00137 * 00138 * - it's not been proscribed, by PANTHEIOS_NO_INCLUDE_WINSTL_STRING_ACCESS, and either 00139 * - it's been explicitly requested, by PANTHEIOS_FORCE_INCLUDE_WINSTL_STRING_ACCESS, or 00140 * - WIN32 is defined 00141 */ 00142 # if !defined(PANTHEIOS_NO_INCLUDE_WINSTL_STRING_ACCESS) && \ 00143 ( defined(PANTHEIOS_FORCE_INCLUDE_WINSTL_STRING_ACCESS) || \ 00144 defined(WIN32)) 00145 # include <winstl/shims/access/string.hpp> 00146 # include <winstl/shims/access/string/time.hpp> 00147 # endif /* Win */ 00148 00149 #endif /* !PANTHEIOS_NO_INCLUDE_STLSOFT_SHIM_ACCESS_SHIMS */ 00150 00151 /* ///////////////////////////////////////////////////////////////////////// 00152 * GCC bug 00153 */ 00154 00155 /* NOTE: We must include <pantheios/inserters.hpp> here, as GCC is a bit thick 00156 * about its two-phase name lookup when resolving shim functions for the 00157 * Pantheios inserter types integer, pointer and real. 00158 */ 00159 00160 #if defined(STLSOFT_COMPILER_IS_GCC) && \ 00161 __GNUC__ < 4 00162 # include <pantheios/inserters.hpp> 00163 #endif /* compiler */ 00164 00165 /* ///////////////////////////////////////////////////////////////////////// 00166 * Namespace 00167 */ 00168 00169 #if !defined(PANTHEIOS_NO_NAMESPACE) 00170 namespace pantheios 00171 { 00172 #endif /* !PANTHEIOS_NO_NAMESPACE */ 00173 00174 /* ///////////////////////////////////////////////////////////////////////// 00175 * C++ API components 00176 */ 00177 00178 00179 #include "./c/log_dispatch_functions.h" // log(s), log(s, s) etc etc 00180 00181 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION 00182 # include "./cpp/log_dispatch_functions.hpp" // log(s), log(s, s) etc etc 00183 #endif /* !PANTHEIOS_DOCUMENTATION_SKIP_SECTION */ 00184 00185 #include "./cpp/log_functions.hpp" // log(s), log(s, s) etc etc 00186 00187 #ifndef PANTHEIOS_NO_SEVERITY_SPECIFIC_FUNCTIONS 00188 # include "./cpp/log_sev_functions.hpp" // log_ALERT() overloads, log_ERROR() overloads, etc. 00189 #endif /* !PANTHEIOS_NO_SEVERITY_SPECIFIC_FUNCTIONS */ 00190 00191 /* ///////////////////////////////////////////////////////////////////////// 00192 * Namespace 00193 */ 00194 00195 #if !defined(PANTHEIOS_NO_NAMESPACE) 00196 } /* namespace pantheios */ 00197 #endif /* !PANTHEIOS_NO_NAMESPACE */ 00198 00199 /* ///////////////////////////////////////////////////////////////////////// 00200 * Auto-initialisation 00201 * 00202 * Except when making a DLL, this is automatic, unless PANTHEIOS_NO_AUTO_INIT 00203 * is defined. 00204 * 00205 * To force it for a DLL, define PANTHEIOS_FORCE_AUTO_INIT 00206 */ 00207 00208 #if defined(_USRDLL) || \ 00209 defined(_AFXDLL) 00210 # define PANTHEIOS_NO_AUTO_INIT 00211 #endif /* dynamic library */ 00212 00213 #if defined(PANTHEIOS_FORCE_AUTO_INIT) || \ 00214 !defined(PANTHEIOS_NO_AUTO_INIT) 00215 # include "./cpp/initialiser.hpp" // Schwarz counter initialisation 00216 #endif /* PANTHEIOS_FORCE_AUTO_INIT || !PANTHEIOS_NO_AUTO_INIT */ 00217 00218 /* ///////////////////////////////////////////////////////////////////////// 00219 * Inclusion 00220 */ 00221 00222 #ifdef STLSOFT_CF_PRAGMA_ONCE_SUPPORT 00223 # pragma once 00224 #endif /* STLSOFT_CF_PRAGMA_ONCE_SUPPORT */ 00225 00226 /* ////////////////////////////////////////////////////////////////////// */ 00227 00228 #endif /* !PANTHEIOS_INCL_PANTHEIOS_HPP_PANTHEIOS */ 00229 00230 /* ////////////////////////////////////////////////////////////////////// */
|
|
pantheios Library documentation © Matthew Wilson, 2006 |
|