ArmNN
 23.02
armnnUtils::Filesystem Namespace Reference

Typedefs

using FileContents = std::string
 

Functions

fs::path NamedTempFile (const char *fileName)
 Returns a path to a file in the system temporary folder. If the file existed it will be deleted. More...
 
std::string CreateDirectory (std::string sPath)
 Returns full path to temporary folder. More...
 
FileContents ReadFileContentsIntoString (const std::string path)
 

Typedef Documentation

◆ FileContents

using FileContents = std::string

Definition at line 24 of file Filesystem.hpp.

Function Documentation

◆ CreateDirectory()

std::string CreateDirectory ( std::string  path)

Returns full path to temporary folder.

Construct a temporary directory.

Given a specified directory name construct a path in the system temporary directory. If the directory already exists, it is deleted, otherwise create it. This could throw filesystem_error exceptions.

Parameters
pathis the path required in the temporary directory.
Returns
path consisting of system temporary directory.
Exceptions
RuntimeExceptionif the directory cannot be created or exists but cannot be removed.

Definition at line 47 of file Filesystem.cpp.

48 {
49  // This line is very unlikely to throw an exception.
50  fs::path tmpDir = fs::temp_directory_path();
51  std::string full_path = tmpDir.generic_string() + path;
52  if (fs::exists(full_path))
53  {
54  try
55  {
56  // This could throw an exception on a multi-user system.
57  fs::remove_all(full_path);
58  }
59  catch (const std::system_error& e)
60  {
61  std::string error = "Directory exists and cannot be removed. Reason: ";
62  error.append(e.what());
63  throw armnn::RuntimeException(error);
64  }
65  }
66 #if defined(_WIN32)
67  result = _mkdir(full_path.c_str()); // can be used on Windows
68  armnn::ConditionalThrow<armnn::RuntimeException>((result == 0), "Was unable to create temporary directory");
69 #else
70  try
71  {
72  if(!fs::create_directory(full_path))
73  {
74  throw armnn::RuntimeException("Unable to create directory: " + full_path);
75  }
76  }
77  catch (const std::system_error& e)
78  {
79  std::string error = "Unable to create directory. Reason: ";
80  error.append(e.what());
81  throw armnn::RuntimeException(error);
82  }
83 #endif
84 
85  return full_path + "/";
86 }

References armnn::error.

Referenced by armnn::Optimize().

◆ NamedTempFile()

fs::path NamedTempFile ( const char *  fileName)

Returns a path to a file in the system temporary folder. If the file existed it will be deleted.

Construct a temporary file name.

Given a specified file name construct a path to that file in the system temporary directory. If the file already exists it is deleted. This could throw filesystem_error exceptions.

Parameters
fileNamethe file name required in the temporary directory.
Returns
path consisting of system temporary directory and file name.

Definition at line 25 of file Filesystem.cpp.

26 {
27  fs::path tmpDir = fs::temp_directory_path();
28  fs::path namedTempFile{tmpDir / fileName};
29  if (fs::exists(namedTempFile))
30  {
31  fs::remove(namedTempFile);
32  }
33  return namedTempFile;
34 }

Referenced by TEST_SUITE().

◆ ReadFileContentsIntoString()

FileContents ReadFileContentsIntoString ( const std::string  path)

Definition at line 88 of file Filesystem.cpp.

88  {
89  if (!fs::exists(path))
90  {
91  throw armnn::RuntimeException("Path does not exist: " + path);
92  }
93  std::ifstream input_file(path);
94  armnn::ConditionalThrow<armnn::RuntimeException>((input_file.is_open()), "Could not read file contents");
95  return FileContents((std::istreambuf_iterator<char>(input_file)), std::istreambuf_iterator<char>());
96 }
armnn::RuntimeException
Definition: Exceptions.hpp:120
armnnUtils::Filesystem::FileContents
std::string FileContents
Definition: Filesystem.hpp:24
armnn::BoostLogSeverityMapping::error
@ error