-/*=========================================================================
-
+/*=========================================================================
Program: bbtk
Module: $RCSfile: bbtkSystem.h,v $
Language: C++
- Date: $Date: 2008/03/11 18:46:47 $
- Version: $Revision: 1.3 $
-
- 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: 2008/11/20 17:41:41 $
+ Version: $Revision: 1.11 $
=========================================================================*/
+/* ---------------------------------------------------------------------
+
+* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+*
+* 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.
+* ------------------------------------------------------------------------ */
+
+
/**
*\file
*\brief contains all the OS depending stuff
//-----------------------------------------------------------------------------
// 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
-/*
-// Useless ?
-#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)
-// ----------------------------------------------------------------------------
-// wx headers
-// ----------------------------------------------------------------------------
-#include "bbtkWx.h"
-
-/*
-#ifdef _USE_WXWIDGETS_
-#include "wx/wxprec.h"
-#include <wx/datetime.h>
-#ifndef WX_PRECOMP
-# include <wx/wx.h>
-#endif //WX_PRECOMP
-
-#include <wx/log.h>
-
-#ifdef __WXGTK__
-# include <locale.h>
-#endif //__WXGTK__
-
-#endif //_USE_WXWIDGETS_
-*/
-//-----------------------------------------------------------------------------
-
-
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+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 <unistd.h> //for access, unlink
+#else
+#include <io.h> //for _access on Win32
+#endif
+
+#ifdef _MSC_VER
+# define access _access
#endif