Browse Source

Use single parameter to accept torrent source

adaptive-webui-19844
Vladimir Golovnev (Glassez) 4 years ago
parent
commit
ee5fe424e8
No known key found for this signature in database
GPG Key ID: 52A2C7DEE2DFA6F7
  1. 10
      src/base/bittorrent/session.cpp
  2. 3
      src/base/bittorrent/session.h

10
src/base/bittorrent/session.cpp

@ -2039,14 +2039,14 @@ bool Session::addTorrent(const MagnetUri &magnetUri, const AddTorrentParams &par
{ {
if (!magnetUri.isValid()) return false; if (!magnetUri.isValid()) return false;
return addTorrent_impl(params, magnetUri); return addTorrent_impl(magnetUri, params);
} }
bool Session::addTorrent(const TorrentInfo &torrentInfo, const AddTorrentParams &params) bool Session::addTorrent(const TorrentInfo &torrentInfo, const AddTorrentParams &params)
{ {
if (!torrentInfo.isValid()) return false; if (!torrentInfo.isValid()) return false;
return addTorrent_impl(params, MagnetUri(), torrentInfo); return addTorrent_impl(torrentInfo, params);
} }
LoadTorrentParams Session::initLoadTorrentParams(const AddTorrentParams &addTorrentParams) LoadTorrentParams Session::initLoadTorrentParams(const AddTorrentParams &addTorrentParams)
@ -2087,9 +2087,11 @@ LoadTorrentParams Session::initLoadTorrentParams(const AddTorrentParams &addTorr
} }
// Add a torrent to the BitTorrent session // 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<MagnetUri, TorrentInfo> &source, const AddTorrentParams &addTorrentParams)
{ {
const bool hasMetadata = metadata.isValid(); const bool hasMetadata = std::holds_alternative<TorrentInfo>(source);
TorrentInfo metadata = (hasMetadata ? std::get<TorrentInfo>(source) : TorrentInfo {});
const MagnetUri &magnetUri = (hasMetadata ? MagnetUri {} : std::get<MagnetUri>(source));
const InfoHash hash = (hasMetadata ? metadata.hash() : magnetUri.hash()); const InfoHash hash = (hasMetadata ? metadata.hash() : magnetUri.hash());
// It looks illogical that we don't just use an existing handle, // It looks illogical that we don't just use an existing handle,

3
src/base/bittorrent/session.h

@ -30,6 +30,7 @@
#pragma once #pragma once
#include <memory> #include <memory>
#include <variant>
#include <vector> #include <vector>
#include <libtorrent/add_torrent_params.hpp> #include <libtorrent/add_torrent_params.hpp>
@ -600,7 +601,7 @@ namespace BitTorrent
bool loadTorrentResumeData(const QByteArray &data, const TorrentInfo &metadata, LoadTorrentParams &torrentParams); bool loadTorrentResumeData(const QByteArray &data, const TorrentInfo &metadata, LoadTorrentParams &torrentParams);
bool loadTorrent(LoadTorrentParams params); bool loadTorrent(LoadTorrentParams params);
LoadTorrentParams initLoadTorrentParams(const AddTorrentParams &addTorrentParams); LoadTorrentParams initLoadTorrentParams(const AddTorrentParams &addTorrentParams);
bool addTorrent_impl(const AddTorrentParams &addTorrentParams, const MagnetUri &magnetUri, TorrentInfo torrentInfo = TorrentInfo()); bool addTorrent_impl(const std::variant<MagnetUri, TorrentInfo> &source, const AddTorrentParams &addTorrentParams);
void updateSeedingLimitTimer(); void updateSeedingLimitTimer();
void exportTorrentFile(const TorrentHandle *torrent, TorrentExportFolder folder = TorrentExportFolder::Regular); void exportTorrentFile(const TorrentHandle *torrent, TorrentExportFolder folder = TorrentExportFolder::Regular);

Loading…
Cancel
Save