From ee5fe424e8a46b7ed1eeff49ec8310ac223fba87 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sun, 3 Jan 2021 16:19:04 +0300 Subject: [PATCH] Use single parameter to accept torrent source --- src/base/bittorrent/session.cpp | 10 ++++++---- src/base/bittorrent/session.h | 3 ++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index d203a60cd..608dceef7 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -2039,14 +2039,14 @@ bool Session::addTorrent(const MagnetUri &magnetUri, const AddTorrentParams &par { if (!magnetUri.isValid()) return false; - return addTorrent_impl(params, magnetUri); + return addTorrent_impl(magnetUri, params); } bool Session::addTorrent(const TorrentInfo &torrentInfo, const AddTorrentParams ¶ms) { if (!torrentInfo.isValid()) return false; - return addTorrent_impl(params, MagnetUri(), torrentInfo); + return addTorrent_impl(torrentInfo, params); } LoadTorrentParams Session::initLoadTorrentParams(const AddTorrentParams &addTorrentParams) @@ -2087,9 +2087,11 @@ LoadTorrentParams Session::initLoadTorrentParams(const AddTorrentParams &addTorr } // Add a torrent to the BitTorrent session -bool Session::addTorrent_impl(const AddTorrentParams &addTorrentParams, const MagnetUri &magnetUri, TorrentInfo metadata) +bool Session::addTorrent_impl(const std::variant &source, const AddTorrentParams &addTorrentParams) { - const bool hasMetadata = metadata.isValid(); + const bool hasMetadata = std::holds_alternative(source); + TorrentInfo metadata = (hasMetadata ? std::get(source) : TorrentInfo {}); + const MagnetUri &magnetUri = (hasMetadata ? MagnetUri {} : std::get(source)); const InfoHash hash = (hasMetadata ? metadata.hash() : magnetUri.hash()); // It looks illogical that we don't just use an existing handle, diff --git a/src/base/bittorrent/session.h b/src/base/bittorrent/session.h index 041d82d80..a5521dba3 100644 --- a/src/base/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -30,6 +30,7 @@ #pragma once #include +#include #include #include @@ -600,7 +601,7 @@ namespace BitTorrent bool loadTorrentResumeData(const QByteArray &data, const TorrentInfo &metadata, LoadTorrentParams &torrentParams); bool loadTorrent(LoadTorrentParams params); LoadTorrentParams initLoadTorrentParams(const AddTorrentParams &addTorrentParams); - bool addTorrent_impl(const AddTorrentParams &addTorrentParams, const MagnetUri &magnetUri, TorrentInfo torrentInfo = TorrentInfo()); + bool addTorrent_impl(const std::variant &source, const AddTorrentParams &addTorrentParams); void updateSeedingLimitTimer(); void exportTorrentFile(const TorrentHandle *torrent, TorrentExportFolder folder = TorrentExportFolder::Regular);