diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-11-09 20:26:31 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-11-09 20:26:31 +0000 |
commit | 9195f37c5f16ad59f3b4acb27ac3731715dd42c6 (patch) | |
tree | 66ee4bf725fffd6579cfeada0c8722c1213246ea /include | |
parent | 31391b6792e6c129b7dcb3ce290a21890699287e (diff) | |
download | external_llvm-9195f37c5f16ad59f3b4acb27ac3731715dd42c6.zip external_llvm-9195f37c5f16ad59f3b4acb27ac3731715dd42c6.tar.gz external_llvm-9195f37c5f16ad59f3b4acb27ac3731715dd42c6.tar.bz2 |
* Implement getStatusInfo for getting stat(2) like information
* Implement createTemporaryFile for mkstemp(3) functionality
* Fix isBytecodeFile to accept llvc magic # (compressed) as bytecode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17654 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/System/Path.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/include/llvm/System/Path.h b/include/llvm/System/Path.h index 7f59d60..77a5add 100644 --- a/include/llvm/System/Path.h +++ b/include/llvm/System/Path.h @@ -16,6 +16,7 @@ #include <string> #include <vector> +#include "llvm/System/TimeValue.h" namespace llvm { namespace sys { @@ -306,6 +307,24 @@ namespace sys { /// @brief Get the base name of the path std::string getBasename() const; + /// This structure provides basic file system information about a file. + /// The structure is filled in by the getStatusInfo method. + /// @brief File status structure + struct StatusInfo { + StatusInfo() : modTime(0,0) { fileSize=0; mode=0; user=0; group=0; } + size_t fileSize; ///< Size of the file in bytes + TimeValue modTime; ///< Time of file's modification + uint64_t mode; ///< Mode of the file, if applicable + uint64_t user; ///< User ID of owner, if applicable + uint64_t group; ///< Group ID of owner, if applicable + }; + + /// This function returns status information about the file. + /// @returns nothing + /// @throws std::string if an error occurs. + /// @brief Get file status. + void getStatusInfo(StatusInfo& stat) const; + /// @returns a c string containing the path name. /// @brief Returns the path as a C string. const char* const c_str() const { return path.c_str(); } @@ -425,6 +444,17 @@ namespace sys { /// @brief Create the file this Path refers to. bool createFile(); + /// This is like createFile except that it creates a temporary file. A + /// unique temporary file name is generated based on the contents of + /// \p this before the call. The new name is assigned to \p this and the + /// file is created. Note that this will both change the Path object + /// *and* create the corresponding file. The path of \p this will have + /// six characters added to it (per mkstemp(3)) that ensure the file + /// name is unique. + /// @throws std::string if there is an error + /// @brief Create a temporary file + bool createTemporaryFile(); + /// This method attempts to destroy the directory named by the last in /// the Path name. If \p remove_contents is false, an attempt will be /// made to remove just the directory that this Path object refers to |