X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkConfigurationFile.h;h=aa5daf30aa58a67f55c99d20b38ae5b3d3f58e15;hb=2d2fc4c6349d5040a9f13a240f079e7a1c6687dd;hp=88d8845271ee6857b24ad7aab9d43a249d32b4c1;hpb=51be19a0b4d980ef0bdcbbfc5c8255d811de1883;p=bbtk.git diff --git a/kernel/src/bbtkConfigurationFile.h b/kernel/src/bbtkConfigurationFile.h index 88d8845..aa5daf3 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/02/06 10:53:02 $ - Version: $Revision: 1.2 $ - - 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: 2008/10/17 08:18:13 $ + Version: $Revision: 1.10 $ +=========================================================================*/ - 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 @@ -37,91 +50,126 @@ #endif #include -#include "xmlParser.h" #include #include #include #include -namespace bbtk -{ -//========================================================================== -class BBTK_EXPORT ConfigurationException -{ -public: - ConfigurationException(const std::string& message) : mMessage(message) {} - - std::string mMessage; -}; - -//========================================================================== -class BBTK_EXPORT ConfigurationFile +namespace bbtk { -public: - - static ConfigurationFile const &GetInstance() + //========================================================================== + class BBTK_EXPORT ConfigurationException + { + public: + ConfigurationException(const std::string& message) : mMessage(message) {} + + std::string mMessage; + }; + //========================================================================== + + //========================================================================== + class BBTK_EXPORT ConfigurationFile { - static ConfigurationFile f; - return f; - } - - ~ConfigurationFile(); - -private: - ConfigurationFile(); - void InstallPath (); - -public: - 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_install_path() const - { return mInstall_path;} - inline const std::vector& Get_bbs_paths() const - { return mBbs_paths;} - inline const std::vector& Get_package_paths() const - { return mPackage_paths;} - 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;} - + public: + + static ConfigurationFile& GetInstance() + { + static ConfigurationFile f; + return f; + } + + ~ConfigurationFile(); + + private: + ConfigurationFile(); + void InstallPath (); + + public: + void GetHelp(int level) const; + + 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_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 + { return mPackage_paths;} + 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;} + + bool AddPackagePathsAndWrite( const std::string& package_root_path ); + private: - void Read(const std::string& fileName); - void GetTextOrClear(const XMLNode& node, std::string& var); - char *GetExecutablePath(); - bool FileExists(std::string strFilename); - void CreateConfigXML( char *rootDirectory ); + void Read(const std::string& fileName); + std::string GetExecutablePath(); + void CreateConfigXML( char *rootDirectory ); -// Attributes : + // Attributes : private : - std::string mDescription; - /// Where is the file bbtk_config.xml - std::string mConfig_xml_full_path; - /// Where the doc is - std::string mUrl; - std::string mInstall_path; - std::string mData_path; - /// / or \, depending on the OS - std::string mFile_separator; - /// Scripts - std::vector mBbs_paths; - /// Package dlls - std::vector mPackage_paths; - /// If Packages link against extern dlls - std::vector mExt_dll_paths; - /// Default directory for generating Graph - std::string mDefault_temp_dir; + std::string mDescription; + /// Where is the file bbtk_config.xml + std::string mConfig_xml_full_path; + + /// Set automatically : + /// The path to the executable (usually bbi) + std::string mBin_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) + std::string mDoc_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 + std::string mData_path; + + /// / or \, depending on the OS + std::string mFile_separator; + + /// Read from bbtk_config.xml file + /// Where the doc is + std::string mUrl; + /// Scripts + std::vector mBbs_paths; + /// Package dlls + 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; }; - - + + }// namespace bbtk