From 086feaf7a52f63dc62c287f872b5e0b2c45f5d7d Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sun, 22 Dec 2024 12:46:06 -0600 Subject: [PATCH] refactor --- .../librepertory/src/file_manager/file_manager.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/repertory/librepertory/src/file_manager/file_manager.cpp b/repertory/librepertory/src/file_manager/file_manager.cpp index b983707f..2bf83aa3 100644 --- a/repertory/librepertory/src/file_manager/file_manager.cpp +++ b/repertory/librepertory/src/file_manager/file_manager.cpp @@ -40,6 +40,7 @@ #include "utils/path.hpp" #include "utils/polling.hpp" #include "utils/time.hpp" +#include namespace repertory { file_manager::file_manager(app_config &config, i_provider &provider) @@ -375,6 +376,8 @@ auto file_manager::open( const std::string &api_path, bool directory, const open_file_data &ofd, std::uint64_t &handle, std::shared_ptr &file, std::shared_ptr closeable_file) -> api_error { + REPERTORY_USES_FUNCTION_NAME(); + const auto create_and_add_handle = [&](std::shared_ptr cur_file) { handle = get_next_handle(); @@ -437,6 +440,14 @@ auto file_manager::open( return download_type::direct; } + if (not utils::file::directory{buffer_directory}.create_directory()) { + utils::error::raise_api_path_error( + function_name, fsi.api_path, utils::get_last_error_code(), + fmt::format("failed to create buffer directory|sp|{}", + buffer_directory)); + return download_type::direct; + } + auto free_space = utils::file::get_free_drive_space(buffer_directory); if (config_.get_ring_buffer_file_size() < free_space) { return download_type::ring_buffer;