aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/System
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-11-09 20:26:31 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-11-09 20:26:31 +0000
commit9195f37c5f16ad59f3b4acb27ac3731715dd42c6 (patch)
tree66ee4bf725fffd6579cfeada0c8722c1213246ea /include/llvm/System
parent31391b6792e6c129b7dcb3ce290a21890699287e (diff)
downloadexternal_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/llvm/System')
-rw-r--r--include/llvm/System/Path.h30
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