This commit is contained in:
@ -49,18 +49,18 @@ public:
|
||||
static constexpr const auto ring_size{5U};
|
||||
|
||||
private:
|
||||
boost::dynamic_bitset<> ring_state_;
|
||||
std::size_t total_chunks_;
|
||||
|
||||
private:
|
||||
std::condition_variable chunk_notify_;
|
||||
mutable std::mutex chunk_mtx_;
|
||||
std::condition_variable chunk_notify_;
|
||||
std::mutex read_mtx_;
|
||||
std::unique_ptr<std::thread> reader_thread_;
|
||||
std::size_t ring_begin_{};
|
||||
std::array<data_buffer, ring_size> ring_data_;
|
||||
std::size_t ring_end_{};
|
||||
std::size_t ring_pos_{};
|
||||
boost::dynamic_bitset<> ring_state_{ring_size};
|
||||
stop_type stop_requested_{false};
|
||||
|
||||
private:
|
||||
|
@ -32,13 +32,12 @@ class i_provider;
|
||||
class open_file_base : public i_closeable_open_file {
|
||||
public:
|
||||
open_file_base(std::uint64_t chunk_size, std::uint8_t chunk_timeout,
|
||||
filesystem_item fsi, i_provider &provider,
|
||||
bool disable_io = false);
|
||||
filesystem_item fsi, i_provider &provider, bool disable_io);
|
||||
|
||||
open_file_base(std::uint64_t chunk_size, std::uint8_t chunk_timeout,
|
||||
filesystem_item fsi,
|
||||
std::map<std::uint64_t, open_file_data> open_data,
|
||||
i_provider &provider, bool disable_io = false);
|
||||
i_provider &provider, bool disable_io);
|
||||
|
||||
~open_file_base() override = default;
|
||||
|
||||
@ -158,17 +157,17 @@ public:
|
||||
|
||||
[[nodiscard]] auto get_handles() const -> std::vector<std::uint64_t> override;
|
||||
|
||||
[[nodiscard]] auto get_open_data()
|
||||
-> std::map<std::uint64_t, open_file_data> & override;
|
||||
[[nodiscard]] auto
|
||||
get_open_data() -> std::map<std::uint64_t, open_file_data> & override;
|
||||
|
||||
[[nodiscard]] auto get_open_data() const
|
||||
-> const std::map<std::uint64_t, open_file_data> & override;
|
||||
|
||||
[[nodiscard]] auto get_open_data(std::uint64_t handle)
|
||||
-> open_file_data & override;
|
||||
[[nodiscard]] auto
|
||||
get_open_data(std::uint64_t handle) -> open_file_data & override;
|
||||
|
||||
[[nodiscard]] auto get_open_data(std::uint64_t handle) const
|
||||
-> const open_file_data & override;
|
||||
[[nodiscard]] auto
|
||||
get_open_data(std::uint64_t handle) const -> const open_file_data & override;
|
||||
|
||||
[[nodiscard]] auto get_open_file_count() const -> std::size_t override;
|
||||
|
||||
|
@ -33,7 +33,6 @@ direct_open_file::direct_open_file(std::uint64_t chunk_size,
|
||||
std::uint8_t chunk_timeout,
|
||||
filesystem_item fsi, i_provider &provider)
|
||||
: open_file_base(chunk_size, chunk_timeout, fsi, provider, true),
|
||||
ring_state_(ring_size),
|
||||
total_chunks_(static_cast<std::size_t>(
|
||||
utils::divide_with_ceiling(fsi_.size, chunk_size))) {
|
||||
if (fsi_.size > 0U) {
|
||||
|
@ -63,7 +63,8 @@ open_file::open_file(std::uint64_t chunk_size, std::uint8_t chunk_timeout,
|
||||
i_provider &provider,
|
||||
std::optional<boost::dynamic_bitset<>> read_state,
|
||||
i_upload_manager &mgr)
|
||||
: open_file_base(chunk_size, chunk_timeout, fsi, open_data, provider),
|
||||
: open_file_base(chunk_size, chunk_timeout, fsi, open_data, provider,
|
||||
false),
|
||||
mgr_(mgr) {
|
||||
REPERTORY_USES_FUNCTION_NAME();
|
||||
|
||||
@ -120,8 +121,8 @@ open_file::open_file(std::uint64_t chunk_size, std::uint8_t chunk_timeout,
|
||||
|
||||
open_file::~open_file() { close(); }
|
||||
|
||||
auto open_file::adjust_cache_size(std::uint64_t file_size, bool shrink)
|
||||
-> api_error {
|
||||
auto open_file::adjust_cache_size(std::uint64_t file_size,
|
||||
bool shrink) -> api_error {
|
||||
REPERTORY_USES_FUNCTION_NAME();
|
||||
|
||||
if (file_size == fsi_.size) {
|
||||
|
@ -40,7 +40,7 @@ ring_buffer_open_file::ring_buffer_open_file(std::string buffer_directory,
|
||||
filesystem_item fsi,
|
||||
i_provider &provider,
|
||||
std::size_t ring_size)
|
||||
: open_file_base(chunk_size, chunk_timeout, fsi, provider),
|
||||
: open_file_base(chunk_size, chunk_timeout, fsi, provider, false),
|
||||
ring_state_(ring_size),
|
||||
source_path_(utils::path::combine(buffer_directory,
|
||||
{utils::create_uuid_string()})),
|
||||
|
Reference in New Issue
Block a user