X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkConfigurationFile.h;h=60f6e319463a108510890f896255f0844f7e9612;hb=731d9ee262e286a24e3ea2776d8e914950840a2c;hp=3d2f92abdef5c13da1db0e646cefe6bfdfe6b898;hpb=5e6e754f059d5fb6b25b883f89f76333228ba5c4;p=bbtk.git diff --git a/kernel/src/bbtkConfigurationFile.h b/kernel/src/bbtkConfigurationFile.h index 3d2f92a..60f6e31 100644 --- a/kernel/src/bbtkConfigurationFile.h +++ b/kernel/src/bbtkConfigurationFile.h @@ -1,20 +1,33 @@ -/*========================================================================= - +/*========================================================================= Program: bbtk Module: $RCSfile: bbtkConfigurationFile.h,v $ Language: C++ - Date: $Date: 2008/03/10 06:24:12 $ - Version: $Revision: 1.6 $ - - 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. + Date: $Date: 2010/11/22 16:44:27 $ + Version: $Revision: 1.12 $ +=========================================================================*/ - 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. +/* --------------------------------------------------------------------- + +* 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 Class bbtk::ConfigurationFile @@ -33,7 +46,9 @@ #ifdef WIN32 -#define _CRT_SECURE_NO_DEPRECATE + #if __VISUALC__ < 1400 + #define _CRT_SECURE_NO_DEPRECATE + #endif #endif #include @@ -43,16 +58,6 @@ #include - // file separator -#if defined(_WIN32) -#define VALID_FILE_SEPARATOR "\\" -#define INVALID_FILE_SEPARATOR "/" -#else -#define INVALID_FILE_SEPARATOR "\\" -#define VALID_FILE_SEPARATOR "/" -#endif - - namespace bbtk { @@ -71,7 +76,7 @@ namespace bbtk { public: - static ConfigurationFile const &GetInstance() + static ConfigurationFile& GetInstance() { static ConfigurationFile f; return f; @@ -79,31 +84,30 @@ namespace bbtk ~ConfigurationFile(); - private: - ConfigurationFile(); - void InstallPath (); - - public: void GetHelp(int level) const; + /// Returns true iff the directory .bbtk has been created on construction + inline bool DotBbtkIsNew() { return mDot_bbtk_is_new; } + inline const std::string& Get_description() const { return mDescription;} - // inline const std::string& Get_url() const - // { return mUrl;} + inline const std::string& Get_data_path() const { return mData_path;} inline const std::string& Get_file_separator() const { return mFile_separator;} + inline const std::string& Get_dot_bbtk_path() const + { return mDot_bbtk_path;} inline const std::string& Get_bin_path() const { return mBin_path;} inline const std::string& Get_install_path() const { return mInstall_path;} inline const std::string& Get_doc_path() const { return mDoc_path;} - inline const std::string& Get_rsc_path() const - { return mRsc_path;} - + + inline const std::string& Get_root_bbs_path() const + { return mBbs_path;} inline const std::vector& Get_bbs_paths() const { return mBbs_paths;} inline const std::vector& Get_package_paths() const @@ -111,13 +115,16 @@ namespace bbtk inline const std::string& Get_config_xml_full_path() const { return mConfig_xml_full_path;} inline const std::string& Get_default_temp_dir() const - { return mDefault_temp_dir;} + { return mTemp_path;} + + bool AddPackagePathsAndWrite( const std::string& package_root_path ); private: + ConfigurationFile(); + void InstallPath (); void Read(const std::string& fileName); - std::string GetExecutablePath(); - void CreateConfigXML( char *rootDirectory ); - + void CreateConfigXML( char *rootDirectory ); + void InitializeDotBbtkStructure(); // Attributes : private : std::string mDescription; @@ -127,20 +134,18 @@ namespace bbtk /// Set automatically : /// The path to the executable (usually bbi) std::string mBin_path; + /// The path to the .bbtk user's dir (e.g. /home/username/.bbtk) + std::string mDot_bbtk_path; /// The path to the install prefix (=mBinPath+"/..") std::string mInstall_path; - /// The relative path to the doc folder (=BBTK_DOC_REL_PATH) - std::string mDoc_rel_path; - /// The path to the doc folder (=mInstall_path+"/"+mDoc_rel_path) + /// The path to the doc folder (=mDot_bbtk_path+"/doc") std::string mDoc_path; + /// Temp directory for generated data (=mDot_bbtk_path+"/tmp") + std::string mTemp_path; /// The relative path to the doc folder (=BBTK_BBS_REL_PATH) std::string mBbs_rel_path; /// The path to the bbs folder (=mInstall_path+"/"+mBbs_rel_path) std::string mBbs_path; - /// The relative path to the rsc folder (=BBTK_RSC_REL_PATH) - std::string mRsc_rel_path; - /// The path to the rsc folder (=mInstall_path+"/"+mRsc_rel_path) - std::string mRsc_path; /// The path to the bbtk data folder /// Initialized to mInstall_path+"/"+BBTK_DATA_REL_PATH /// But can be overriden by value read from bbtk_config.xml @@ -158,9 +163,12 @@ namespace bbtk std::vector mPackage_paths; /// If Packages link against extern dlls std::vector mExt_dll_paths; - /// Temp directory for generated data - std::string mDefault_temp_dir; - }; + + + /// Set to true by InitializeDotBbtkStructure() if .bbtk has been newly + /// created + bool mDot_bbtk_is_new; + }; }// namespace bbtk