19auto atomic_rename_file(
const fs::path& src,
const fs::path& dst, fs::error_code& ec)
noexcept -> bool;
20auto make_temp_path(
const fs::path& dir, fs::path& out, fs::error_code& ec)
noexcept -> bool;
25auto atomic_copy_file(
const fs::path& src,
const fs::path& dst, fs::error_code& ec)
noexcept -> bool;
27 const std::function<
void(
const fs::path&)>& callback,
28 fs::error_code& ec)
noexcept;
39 std::chrono::seconds min_age = std::chrono::seconds(60)) noexcept ->
std::
size_t;
44 const fs::path& key = asset.id();
48 if(absolute_path.extension() !=
".meta")
50 absolute_path +=
".meta";
65 [&](
const fs::path& temp)
73 catch(
const std::exception& e)
75 APPLOG_ERROR(
"Failed to save object to file: {0}", e.what());
90 [&](
const fs::path& temp)
98 catch(
const std::exception& e)
100 APPLOG_ERROR(
"Failed to save object to file: {0}", e.what());
#define APPLOG_ERROR(...)
auto get_data_directory(const std::string &prefix={}) -> std::string
auto get_meta_directory(const std::string &prefix={}) -> std::string
path resolve_protocol(const path &_path)
Given the specified path/filename, resolve the final full filename. This will be based on either the ...
path replace(const path &_path, const path &_sequence, const path &_new_sequence)
Replacing any occurences of the specified path sequence with another.
path convert_to_protocol(const path &_path)
Oposite of the resolve_protocol this function tries to convert to protocol path from an absolute one.
Hash specialization for batch_key to enable use in std::unordered_map.
auto make_temp_path(const fs::path &dir, fs::path &out, fs::error_code &ec) noexcept -> bool
auto atomic_rename_file(const fs::path &src, const fs::path &dst, fs::error_code &ec) noexcept -> bool
auto atomic_save_to_file(const fs::path &key, const asset_handle< T > &obj) -> bool
auto cleanup_stale_temp_files(const fs::path &dir, bool recursive, std::chrono::seconds min_age) noexcept -> std::size_t
auto atomic_copy_file(const fs::path &src, const fs::path &dst, fs::error_code &ec) noexcept -> bool
auto resolve_meta_file(const asset_handle< T > &asset) -> fs::path
void atomic_write_file(const fs::path &dst, const std::function< void(const fs::path &)> &callback, fs::error_code &ec) noexcept
void save_to_file(const std::string &absolute_path, const animation_clip &obj)
Thread-safe handle to an asset.