Skip to content

Commit

Permalink
Passed url_path to request_generators
Browse files Browse the repository at this point in the history
  • Loading branch information
JohanMabille committed Mar 25, 2024
1 parent 7942d3f commit 5ebd91b
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 12 deletions.
4 changes: 2 additions & 2 deletions libmamba/include/mamba/download/mirror.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ namespace mamba::download
Mirror& operator=(Mirror&&) = delete;

const MirrorID& id() const;
request_generator_list get_request_generators() const;
request_generator_list get_request_generators(const std::string& url_path) const;

std::size_t max_retries() const;
std::size_t successful_transfers() const;
Expand All @@ -88,7 +88,7 @@ namespace mamba::download

private:

virtual request_generator_list get_request_generators_impl() const = 0;
virtual request_generator_list get_request_generators_impl(const std::string&) const = 0;

MirrorID m_id;
size_t m_max_retries;
Expand Down
6 changes: 3 additions & 3 deletions libmamba/src/download/downloader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -563,9 +563,9 @@ namespace mamba::download
* LAST_REQUEST_FAILED:
* - m_retries == p_mirror->max_retries ? => SEQUENCE_FAILED
*/
MirrorAttempt::MirrorAttempt(Mirror& mirror)
MirrorAttempt::MirrorAttempt(Mirror& mirror, const std::string& url_path)
: p_mirror(&mirror)
, m_request_generators(p_mirror->get_request_generators())
, m_request_generators(p_mirror->get_request_generators(url_path))
{
}

Expand Down Expand Up @@ -818,7 +818,7 @@ namespace mamba::download
m_state = State::WAITING;
if (m_mirror_attempt.has_failed())
{
prepare_mirror_attempt();
prepare_mirror_attempt(p_initial_request->url_path);
}
}
else
Expand Down
2 changes: 1 addition & 1 deletion libmamba/src/download/downloader_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ namespace mamba::download
using on_failure_callback = DownloadAttempt::on_failure_callback;

MirrorAttempt() = default;
explicit MirrorAttempt(Mirror& mirror);
MirrorAttempt(Mirror& mirror, const std::string& url_path);

void prepare_request(const Request& initial_request);
auto prepare_attempt(
Expand Down
4 changes: 2 additions & 2 deletions libmamba/src/download/mirror.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ namespace mamba::download
return m_id;
}

auto Mirror::get_request_generators() const -> request_generator_list
auto Mirror::get_request_generators(const std::string& url_path) const -> request_generator_list
{
return get_request_generators_impl();
return get_request_generators_impl(url_path);
}

std::size_t Mirror::max_retries() const
Expand Down
5 changes: 3 additions & 2 deletions libmamba/src/download/mirror_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ namespace mamba::download
return PASSTHROUGH_MIRROR_ID;
}

auto PassThroughMirror::get_request_generators_impl() const -> request_generator_list
auto PassThroughMirror::get_request_generators_impl(const std::string&) const
-> request_generator_list
{
return { [](const Request& dl_request, const Content*)
{ return MirrorRequest(dl_request, dl_request.url_path); } };
Expand All @@ -51,7 +52,7 @@ namespace mamba::download
return MirrorID(std::move(url));
}

auto HTTPMirror::get_request_generators_impl() const -> request_generator_list
auto HTTPMirror::get_request_generators_impl(const std::string&) const -> request_generator_list
{
return { [url = m_url](const Request& dl_request, const Content*)
{ return MirrorRequest(dl_request, util::url_concat(url, dl_request.url_path)); } };
Expand Down
4 changes: 2 additions & 2 deletions libmamba/src/download/mirror_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ namespace mamba::download
private:

using request_generator_list = Mirror::request_generator_list;
request_generator_list get_request_generators_impl() const override;
request_generator_list get_request_generators_impl(const std::string&) const override;
};

class HTTPMirror : public Mirror
Expand All @@ -39,7 +39,7 @@ namespace mamba::download
private:

using request_generator_list = Mirror::request_generator_list;
request_generator_list get_request_generators_impl() const override;
request_generator_list get_request_generators_impl(const std::string&) const override;

std::string m_url;
};
Expand Down

0 comments on commit 5ebd91b

Please sign in to comment.