X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkSystem.h;h=558af50760310662e9a01bf08cfe0151c2ac301b;hb=87efce51877a540d943b1aa26307994b38bba55b;hp=1047e7d7c8340a330b92664f572e322d07142885;hpb=a26195c366a89795288009cf7e20f11afa494970;p=bbtk.git diff --git a/kernel/src/bbtkSystem.h b/kernel/src/bbtkSystem.h index 1047e7d..558af50 100644 --- a/kernel/src/bbtkSystem.h +++ b/kernel/src/bbtkSystem.h @@ -1,21 +1,41 @@ +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la SantÈ) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # This software is governed by the CeCILL-B license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL-B + # license as circulated by CEA, CNRS and INRIA at the following URL + # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + # or in the file LICENSE.txt. + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL-B license and that you accept its terms. + # ------------------------------------------------------------------------ */ + + /*========================================================================= - Program: bbtk Module: $RCSfile: bbtkSystem.h,v $ Language: C++ - Date: $Date: 2008/01/22 15:02:00 $ - Version: $Revision: 1.1 $ - - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - + Date: $Date: 2012/11/16 08:49:01 $ + Version: $Revision: 1.15 $ =========================================================================*/ + + + /** *\file *\brief contains all the OS depending stuff @@ -52,7 +72,17 @@ // produce errors if applied using infix notation #pragma warning ( disable : 4284 ) // 'type' : forcing value to bool 'true' or 'false' (performance warning) +// Has revealed a real error ! +// bbSignalOutputModification(bool) called rather than +// bbSignalOutputModification(const std::string&, bool = true) +// when invoking bbSignalOutputModification("Out") +// KEEP IT ! // //#pragma warning ( disable : 4800 ) +// To avoid warning : +// 'PACKAGE_NAMEGetPackage' has C-linkage specified, but returns UDT 'boost::shared_ptr' which is incompatible with C +#pragma warning ( disable : 4190 ) + + #endif //_MSC_VER @@ -71,30 +101,24 @@ //----------------------------------------------------------------------------- // Micro$oft shared library related stuff // -// all the classes should be defined as : +// all the classes that must be visible outside the bbtk library +// should be defined as : // class BBTK_EXPORT ClassName // instead of : // class ClassName -#if defined(_WIN32) && defined(BUILD_SHARED_LIBS) - #ifdef bbtk_EXPORTS2 - #define BBTK_EXPORT2 export - #else - #define BBTK_EXPORT2 - #endif -#else - #define BBTK_EXPORT2 -#endif // defined(_WIN32) && defined(BUILD_SHARED_LIBS) - - - +#if defined(_WIN32) + // IF NOT DEF THEN INTERNAL COMPILER ERROR WITH BOOST 1.37 ON VISUAL C++ + #define BOOST_SP_NO_SP_CONVERTIBLE +#endif -#if defined(_WIN32) && defined(BUILD_SHARED_LIBS) +#if defined(_WIN32) +//&& defined(BUILD_SHARED_LIBS) //#include "WWW.h" - #ifdef bbtk_EXPORTS + #ifdef BBTK_EXPORT_SYMBOLS #define BBTK_EXPORT __declspec( dllexport ) - #else +#else #define BBTK_EXPORT __declspec( dllimport ) #endif #define BBTK_CDECL __cdecl @@ -111,30 +135,6 @@ -// ---------------------------------------------------------------------------- -// wx headers -// ---------------------------------------------------------------------------- -#include "bbtkWx.h" - -/* -#ifdef _USE_WXWIDGETS_ -#include "wx/wxprec.h" -#include -#ifndef WX_PRECOMP -# include -#endif //WX_PRECOMP - -#include - -#ifdef __WXGTK__ -# include -#endif //__WXGTK__ - -#endif //_USE_WXWIDGETS_ -*/ -//----------------------------------------------------------------------------- - - //----------------------------------------------------------------------------- @@ -212,4 +212,55 @@ typedef unsigned int uint32_t; //----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +namespace bbtk +{ + + /// System related stuff + struct System + { + /// returns true iff the program has a tty + static int HasTTY(); + }; + +} // namespace bbtk +//----------------------------------------------------------------------------- + + // file separator +#if defined(_WIN32) +#define VALID_FILE_SEPARATOR "\\" +#define INVALID_FILE_SEPARATOR "/" +#define VALID_FILE_SEPARATOR_CHAR '\\' +#define INVALID_FILE_SEPARATOR_CHAR '/' +#else +#define INVALID_FILE_SEPARATOR "\\" +#define VALID_FILE_SEPARATOR "/" +#define INVALID_FILE_SEPARATOR_CHAR '\\' +#define VALID_FILE_SEPARATOR_CHAR '/' +#endif + +#endif + + +//---------------------------- +#ifndef _WIN32 +#include //for access, unlink +#else +#include //for _access on Win32 +#endif + +#ifdef _MSC_VER +# define access _access #endif + + + + +//=========================================================== +// Define the groups (modules) for doxygen documentation +/** + * \defgroup box Black boxes related classes + * \defgroup interface Graphical User Interface components + * \defgroup data Data +*/