/usr/include/openturns/Path.hxx is in libopenturns-dev 0.15-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | // -*- C++ -*-
/**
* @file Path.hxx
* @brief This class provides all the mechanism of path manipulation
*
* (C) Copyright 2005-2011 EDF-EADS-Phimeca
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* @author: $LastChangedBy: schueller $
* @date: $LastChangedDate: 2011-05-24 19:30:41 +0200 (Tue, 24 May 2011) $
* Id: $Id: Path.hxx 1910 2011-05-24 17:30:41Z schueller $
*/
#ifndef OPENTURNS_PATH_HXX
#define OPENTURNS_PATH_HXX
#include <iostream> // for std::ostream
#include <vector> // for std::vector
#include "OTprivate.hxx"
#include "Exception.hxx"
namespace OpenTURNS
{
namespace Base
{
namespace Common
{
/**
* @class Path
* @brief Provides mechanism for path manipulation
*
* The class defines the search algorithms used to find a file or a directory
* through the filesystem. It also defines the standard hardcoded paths and the
* way temporary files are built.
*/
class Path
{
public:
typedef std::vector<FileName> DirectoryList;
/**
* Return the Open TURNS prefix
*
* The search rule is: check the following paths, in that order:
* + if the env var OPENTURNS_HOME exists, return ${OPENTURNS_HOME} if it exists and is a
* directory,
* + otherwise return the installation path ${prefix}, where 'prefix' is the installation path
* of the platform as provided at configuration time.
*/
static FileName GetInstallationDirectory();
/**
* Return the path of the module standard directory
*
* The search rule is: check the following paths, in that order:
* + if the env var OPENTURNS_HOME exists, return ${OPENTURNS_HOME}/lib/openturns/module if it
* exists and is a directory,
* + otherwise return the installation path ${prefix}/lib/openturns/module, where 'prefix' is
* the installation path of the platform as provided at configuration time.
*/
static FileName GetModuleDirectory();
/**
* Analyse the process environment and return the directory where
* installed wrappers and DTD are.
*
* The search rule is: check the following paths, in that order:
* + if the env var OPENTURNS_HOME exists, return ${OPENTURNS_HOME}/share/openturns/wrappers
* if it exists and is a directory,
* + otherwise return the installation path ${prefix}/share/openturns/wrappers, where 'prefix'
* is the installation path of the platform as provided at configuration time.
*/
static FileName GetStandardWrapperDirectory();
/**
* Analyse the process environment
* and return a list of directories to search in for wrappers.
*
* The search rule is :look for the file in the following directories, in that order :
* + if the env var OPENTURNS_WRAPPER_PATH exists, in directories listed in
* ${OPENTURNS_WRAPPER_PATH} (see openturnsWrapperPathVariableName_)
* + in directory ${HOME}/openturns/wrappers (see homeSubdirectory_)
* + in the standard wrapper directory, as defined by the method
* GetStandardWrapperDirectory().
*/
static DirectoryList GetWrapperDirectoryList();
/**
* Analyse the process environment
* and return a list of directories to search in for configuration files.
*
* The search rule is :look for the file in the following directories, in that order :
* + if the env var OPENTURNS_CONFIG_PATH exists, in directories listed in
* ${OPENTURNS_CONFIG_PATH} (see openturnsConfigPathVariableName_)
* + in directory ${HOME}/openturns/etc (see homeSubdirectory_)
* + in standard config directory (either ${OPENTURNS_HOME}/etc/openturns if OPENTURNS_HOME
* is defined and if this path is a directory, or the path ${prefix}/etc/openturns
* where 'prefix' is the installation path of the platform as provided at configuration time.
*/
static DirectoryList GetConfigDirectoryList();
/**
* Find a file named \em name located in one of the directories
* listed in \em dirList. The function returns the full path (directory/name)
* of the first match.
*/
static FileName FindFileByNameInDirectoryList(const FileName & name,
const DirectoryList & dirList)
/* throw(FileNotFoundException) */;
/** Get the temporary directory set in the openturns conf file.
*
* On Windows, if temporary-directory is an env var, return the content of the env var,
* if not, just return the content of temporary-directory.
* This function is mostly useful on windows in order to get the TEMP env var.
*/
static FileName GetTemporaryDirectory();
/** Build a temporary file name given a pattern
* @param pattern A filename containing at least the 'XXXXXX' string
* @result A new unique filename based on the \em pattern
*/
static FileName BuildTemporaryFileName(const FileName & pattern);
/** Create a temporary directory.
*/
static FileName CreateTemporaryDirectory(const FileName & directoryPrefix);
/** Delete a temporary directory
*/
static void DeleteTemporaryDirectory(const FileName & directoryName);
protected:
/**
* @var static const char * Path::OpenturnsWrapperPathVariableName_
*
* The environment variable name
*/
static const char * OpenturnsWrapperPathVariableName_;
/**
* @var static const char * Path::OpenturnsConfigPathVariableName_
*
* The environment variable name
*/
static const char * OpenturnsConfigPathVariableName_;
/**
* @var static const char * Path::HomeWrapperSubdirectory_
*
* The HOME subdirectory path
*/
static const char * HomeWrapperSubdirectory_;
/**
* @var static const char * Path::HomeConfigSubdirectory_
*
* The HOME subdirectory path
*/
static const char * HomeConfigSubdirectory_;
/**
* @var static const char * Path::PrefixWrapperSubdirectory_
*
* The 'prefix' subdirectory path
*/
static const char * PrefixWrapperSubdirectory_;
/**
* @var static const char * Path::PrefixConfigSubdirectory_
*
* The 'prefix' subdirectory path
*/
static const char * PrefixConfigSubdirectory_;
/**
* @var static const char * Path:PrefixModuleSubdirectory_:
*
* The 'prefix' subdirectory path
*/
static const char * PrefixModuleSubdirectory_;
#ifdef WIN32
/** Add windows backslash to filename for compatibility with R. */
static void SlashFileName(FileName & filename);
#endif
public:
protected:
private:
/** Default constructor */
Path();
}; /* class Path */
} /* namespace Common */
} /* namespace Base */
} /* namespace OpenTURNS */
#endif /* OPENTURNS_PATH_HXX */
|