refactor: add tr_torrent::renamePath (#2178)

This commit is contained in:
Charles Kerr 2021-11-15 22:10:36 -06:00 committed by GitHub
parent e7a229e6c3
commit a21594b0ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 13 deletions

View File

@ -1421,15 +1421,15 @@ static char const* torrentRenamePath(
{
char const* errmsg = nullptr;
char const* oldpath = nullptr;
(void)tr_variantDictFindStr(args_in, TR_KEY_path, &oldpath, nullptr);
char const* newname = nullptr;
(void)tr_variantDictFindStr(args_in, TR_KEY_name, &newname, nullptr);
auto oldpath = std::string_view{};
(void)tr_variantDictFindStrView(args_in, TR_KEY_path, &oldpath);
auto newname = std::string_view{};
(void)tr_variantDictFindStrView(args_in, TR_KEY_name, &newname);
auto const torrents = getTorrents(session, args_in);
if (std::size(torrents) == 1)
{
tr_torrentRenamePath(torrents[0], oldpath, newname, torrentRenamePathDone, idle_data);
torrents[0]->renamePath(oldpath, newname, torrentRenamePathDone, idle_data);
}
else
{

View File

@ -784,7 +784,6 @@ static void sessionSetImpl(void* vdata)
auto d = double{};
auto i = int64_t{};
auto sv = std::string_view{};
char const* strVal = nullptr;
tr_turtle_info* const turtle = &session->turtle;
if (tr_variantDictFindInt(settings, TR_KEY_message_level, &i))

View File

@ -3695,6 +3695,22 @@ static void torrentRenamePath(void* vdata)
tr_free(data);
}
void tr_torrent::renamePath(
std::string_view oldpath,
std::string_view newname,
tr_torrent_rename_done_func callback,
void* callback_user_data)
{
auto* const data = tr_new0(struct rename_data, 1);
data->tor = this;
data->oldpath = tr_strvDup(oldpath);
data->newname = tr_strvDup(newname);
data->callback = callback;
data->callback_user_data = callback_user_data;
tr_runInEventThread(this->session, torrentRenamePath, data);
}
void tr_torrentRenamePath(
tr_torrent* tor,
char const* oldpath,
@ -3702,14 +3718,10 @@ void tr_torrentRenamePath(
tr_torrent_rename_done_func callback,
void* callback_user_data)
{
auto* const data = tr_new0(struct rename_data, 1);
data->tor = tor;
data->oldpath = tr_strdup(oldpath);
data->newname = tr_strdup(newname);
data->callback = callback;
data->callback_user_data = callback_user_data;
oldpath = oldpath != nullptr ? oldpath : "";
newname = newname != nullptr ? newname : "";
tr_runInEventThread(tor->session, torrentRenamePath, data);
tor->renamePath(oldpath, newname, callback, callback_user_data);
}
void tr_torrent::takeMetainfo(tr_metainfo_parsed&& parsed)

View File

@ -143,6 +143,12 @@ public:
double volatile* setme_progress,
int volatile* setme_state);
void renamePath(
std::string_view oldpath,
std::string_view newname,
tr_torrent_rename_done_func callback,
void* callback_user_data);
tr_sha1_digest_t pieceHash(tr_piece_index_t i) const
{
TR_ASSERT(i < std::size(this->piece_checksums_));