codekingpro/portable-devtools
114k
1// -*- C++ -*-2//===--------------------------- filesystem -------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9#ifndef _LIBCUDACXX_EXPERIMENTAL_FILESYSTEM10#define _LIBCUDACXX_EXPERIMENTAL_FILESYSTEM11/*12 filesystem synopsis13 14 namespace std { namespace experimental { namespace filesystem { inline namespace v1 {15 16 class path;17 18 void swap(path& lhs, path& rhs) noexcept;19 size_t hash_value(const path& p) noexcept;20 21 bool operator==(const path& lhs, const path& rhs) noexcept;22 bool operator!=(const path& lhs, const path& rhs) noexcept;23 bool operator< (const path& lhs, const path& rhs) noexcept;24 bool operator<=(const path& lhs, const path& rhs) noexcept;25 bool operator> (const path& lhs, const path& rhs) noexcept;26 bool operator>=(const path& lhs, const path& rhs) noexcept;27 28 path operator/ (const path& lhs, const path& rhs);29 30 // fs.path.io operators are friends of path.31 template <class charT, class traits>32 friend basic_ostream<charT, traits>&33 operator<<(basic_ostream<charT, traits>& os, const path& p);34 35 template <class charT, class traits>36 friend basic_istream<charT, traits>&37 operator>>(basic_istream<charT, traits>& is, path& p);38 39 template <class Source>40 path u8path(const Source& source);41 template <class InputIterator>42 path u8path(InputIterator first, InputIterator last);43 44 class filesystem_error;45 class directory_entry;46 47 class directory_iterator;48 49 // enable directory_iterator range-based for statements50 directory_iterator begin(directory_iterator iter) noexcept;51 directory_iterator end(const directory_iterator&) noexcept;52 53 class recursive_directory_iterator;54 55 // enable recursive_directory_iterator range-based for statements56 recursive_directory_iterator begin(recursive_directory_iterator iter) noexcept;57 recursive_directory_iterator end(const recursive_directory_iterator&) noexcept;58 59 class file_status;60 61 struct space_info62 {63 uintmax_t capacity;64 uintmax_t free;65 uintmax_t available;66 };67 68 enum class file_type;69 enum class perms;70 enum class perm_options;71 enum class copy_options;72 enum class directory_options;73 74 typedef chrono::time_point<trivial-clock> file_time_type;75 76 // operational functions77 78 path absolute(const path& p);79 path absolute(const path& p, error_code &ec);80 81 path canonical(const path& p);82 path canonical(const path& p, error_code& ec);83 84 void copy(const path& from, const path& to);85 void copy(const path& from, const path& to, error_code& ec);86 void copy(const path& from, const path& to, copy_options options);87 void copy(const path& from, const path& to, copy_options options,88 error_code& ec);89 90 bool copy_file(const path& from, const path& to);91 bool copy_file(const path& from, const path& to, error_code& ec);92 bool copy_file(const path& from, const path& to, copy_options option);93 bool copy_file(const path& from, const path& to, copy_options option,94 error_code& ec);95 96 void copy_symlink(const path& existing_symlink, const path& new_symlink);97 void copy_symlink(const path& existing_symlink, const path& new_symlink,98 error_code& ec) noexcept;99 100 bool create_directories(const path& p);101 bool create_directories(const path& p, error_code& ec);102 103 bool create_directory(const path& p);104 bool create_directory(const path& p, error_code& ec) noexcept;105 106 bool create_directory(const path& p, const path& attributes);107 bool create_directory(const path& p, const path& attributes,108 error_code& ec) noexcept;109 110 void create_directory_symlink(const path& to, const path& new_symlink);111 void create_directory_symlink(const path& to, const path& new_symlink,112 error_code& ec) noexcept;113 114 void create_hard_link(const path& to, const path& new_hard_link);115 void create_hard_link(const path& to, const path& new_hard_link,116 error_code& ec) noexcept;117 118 void create_symlink(const path& to, const path& new_symlink);119 void create_symlink(const path& to, const path& new_symlink,120 error_code& ec) noexcept;121 122 path current_path();123 path current_path(error_code& ec);124 void current_path(const path& p);125 void current_path(const path& p, error_code& ec) noexcept;126 127 bool exists(file_status s) noexcept;128 bool exists(const path& p);129 bool exists(const path& p, error_code& ec) noexcept;130 131 bool equivalent(const path& p1, const path& p2);132 bool equivalent(const path& p1, const path& p2, error_code& ec) noexcept;133 134 uintmax_t file_size(const path& p);135 uintmax_t file_size(const path& p, error_code& ec) noexcept;136 137 uintmax_t hard_link_count(const path& p);138 uintmax_t hard_link_count(const path& p, error_code& ec) noexcept;139 140 bool is_block_file(file_status s) noexcept;141 bool is_block_file(const path& p);142 bool is_block_file(const path& p, error_code& ec) noexcept;143 144 bool is_character_file(file_status s) noexcept;145 bool is_character_file(const path& p);146 bool is_character_file(const path& p, error_code& ec) noexcept;147 148 bool is_directory(file_status s) noexcept;149 bool is_directory(const path& p);150 bool is_directory(const path& p, error_code& ec) noexcept;151 152 bool is_empty(const path& p);153 bool is_empty(const path& p, error_code& ec) noexcept;154 155 bool is_fifo(file_status s) noexcept;156 bool is_fifo(const path& p);157 bool is_fifo(const path& p, error_code& ec) noexcept;158 159 bool is_other(file_status s) noexcept;160 bool is_other(const path& p);161 bool is_other(const path& p, error_code& ec) noexcept;162 163 bool is_regular_file(file_status s) noexcept;164 bool is_regular_file(const path& p);165 bool is_regular_file(const path& p, error_code& ec) noexcept;166 167 bool is_socket(file_status s) noexcept;168 bool is_socket(const path& p);169 bool is_socket(const path& p, error_code& ec) noexcept;170 171 bool is_symlink(file_status s) noexcept;172 bool is_symlink(const path& p);173 bool is_symlink(const path& p, error_code& ec) noexcept;174 175 file_time_type last_write_time(const path& p);176 file_time_type last_write_time(const path& p, error_code& ec) noexcept;177 void last_write_time(const path& p, file_time_type new_time);178 void last_write_time(const path& p, file_time_type new_time,179 error_code& ec) noexcept;180 181 void permissions(const path& p, perms prms,182 perm_options opts=perm_options::replace);183 void permissions(const path& p, perms prms, error_code& ec) noexcept;184 void permissions(const path& p, perms prms, perm_options opts,185 error_code& ec);186 187 path proximate(const path& p, error_code& ec);188 path proximate(const path& p, const path& base = current_path());189 path proximate(const path& p, const path& base, error_code &ec);190 191 path read_symlink(const path& p);192 path read_symlink(const path& p, error_code& ec);193 194 path relative(const path& p, error_code& ec);195 path relative(const path& p, const path& base=current_path());196 path relative(const path& p, const path& base, error_code& ec);197 198 bool remove(const path& p);199 bool remove(const path& p, error_code& ec) noexcept;200 201 uintmax_t remove_all(const path& p);202 uintmax_t remove_all(const path& p, error_code& ec);203 204 void rename(const path& from, const path& to);205 void rename(const path& from, const path& to, error_code& ec) noexcept;206 207 void resize_file(const path& p, uintmax_t size);208 void resize_file(const path& p, uintmax_t size, error_code& ec) noexcept;209 210 space_info space(const path& p);211 space_info space(const path& p, error_code& ec) noexcept;212 213 file_status status(const path& p);214 file_status status(const path& p, error_code& ec) noexcept;215 216 bool status_known(file_status s) noexcept;217 218 file_status symlink_status(const path& p);219 file_status symlink_status(const path& p, error_code& ec) noexcept;220 221 path temp_directory_path();222 path temp_directory_path(error_code& ec);223 224 path weakly_canonical(path const& p);225 path weakly_canonical(path const& p, error_code& ec);226 227 228} } } } // namespaces std::experimental::filesystem::v1229 230*/231 232#include <experimental/__config>233#include <filesystem>234 235#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)236# pragma GCC system_header237#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)238# pragma clang system_header239#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)240# pragma system_header241#endif // no system header242 243_LIBCUDACXX_PUSH_MACROS244#include <__undef_macros>245 246#define __cpp_lib_experimental_filesystem 201406247 248_LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL_FILESYSTEM249 250using namespace _CUDA_VSTD_FS;251 252_LIBCUDACXX_END_NAMESPACE_EXPERIMENTAL_FILESYSTEM253 254_LIBCUDACXX_POP_MACROS255 256#endif // _LIBCUDACXX_EXPERIMENTAL_FILESYSTEM257 