mirror of
https://github.com/transmission/transmission.git
synced 2025-12-20 02:18:42 +00:00
refactor: add tr_variant::unmanaged_string(tr_quark) (#7906)
* feat: add tr_variant::unmanaged_string(tr_quark) * refactor: use tr_variant::unmanaged_string(tr_quark)
This commit is contained in:
@@ -272,6 +272,11 @@ public:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] static tr_variant unmanaged_string(tr_quark const key)
|
||||||
|
{
|
||||||
|
return unmanaged_string(tr_quark_get_string_view(key));
|
||||||
|
}
|
||||||
|
|
||||||
template<typename Val>
|
template<typename Val>
|
||||||
tr_variant& operator=(Val value)
|
tr_variant& operator=(Val value)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ TEST_F(RpcTest, JsonRpcWrongVersion)
|
|||||||
{
|
{
|
||||||
auto request_map = tr_variant::Map{ 3U };
|
auto request_map = tr_variant::Map{ 3U };
|
||||||
request_map.try_emplace(TR_KEY_jsonrpc, "1.0");
|
request_map.try_emplace(TR_KEY_jsonrpc, "1.0");
|
||||||
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_stats)));
|
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_stats));
|
||||||
request_map.try_emplace(TR_KEY_id, 12345);
|
request_map.try_emplace(TR_KEY_id, 12345);
|
||||||
|
|
||||||
auto response = tr_variant{};
|
auto response = tr_variant{};
|
||||||
@@ -141,9 +141,7 @@ TEST_F(RpcTest, idSync)
|
|||||||
{
|
{
|
||||||
auto request_map = tr_variant::Map{ 3U };
|
auto request_map = tr_variant::Map{ 3U };
|
||||||
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
||||||
request_map.try_emplace(
|
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_stats_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_stats_kebab)));
|
|
||||||
request_map[TR_KEY_id].merge(request_id); // copy
|
request_map[TR_KEY_id].merge(request_id); // copy
|
||||||
|
|
||||||
auto response = tr_variant{};
|
auto response = tr_variant{};
|
||||||
@@ -189,7 +187,7 @@ TEST_F(RpcTest, idWrongType)
|
|||||||
{
|
{
|
||||||
auto request_map = tr_variant::Map{ 3U };
|
auto request_map = tr_variant::Map{ 3U };
|
||||||
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
||||||
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_stats)));
|
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_stats));
|
||||||
request_map[TR_KEY_id].merge(request_id); // copy
|
request_map[TR_KEY_id].merge(request_id); // copy
|
||||||
|
|
||||||
auto response = tr_variant{};
|
auto response = tr_variant{};
|
||||||
@@ -223,7 +221,7 @@ TEST_F(RpcTest, idWrongType)
|
|||||||
TEST_F(RpcTest, tagSyncLegacy)
|
TEST_F(RpcTest, tagSyncLegacy)
|
||||||
{
|
{
|
||||||
auto request_map = tr_variant::Map{ 2U };
|
auto request_map = tr_variant::Map{ 2U };
|
||||||
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_stats)));
|
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_stats));
|
||||||
request_map.try_emplace(TR_KEY_tag, 12345);
|
request_map.try_emplace(TR_KEY_tag, 12345);
|
||||||
|
|
||||||
auto response = tr_variant{};
|
auto response = tr_variant{};
|
||||||
@@ -257,9 +255,7 @@ TEST_F(RpcTest, idAsync)
|
|||||||
|
|
||||||
auto request_map = tr_variant::Map{ 3U };
|
auto request_map = tr_variant::Map{ 3U };
|
||||||
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
||||||
request_map.try_emplace(
|
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_torrent_rename_path_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_rename_path_kebab)));
|
|
||||||
request_map[TR_KEY_id].merge(request_id); // copy
|
request_map[TR_KEY_id].merge(request_id); // copy
|
||||||
|
|
||||||
auto params_map = tr_variant::Map{ 2U };
|
auto params_map = tr_variant::Map{ 2U };
|
||||||
@@ -310,7 +306,7 @@ TEST_F(RpcTest, tagAsyncLegacy)
|
|||||||
EXPECT_NE(nullptr, tor);
|
EXPECT_NE(nullptr, tor);
|
||||||
|
|
||||||
auto request_map = tr_variant::Map{ 3U };
|
auto request_map = tr_variant::Map{ 3U };
|
||||||
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_rename_path)));
|
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_torrent_rename_path));
|
||||||
request_map.try_emplace(TR_KEY_tag, 12345);
|
request_map.try_emplace(TR_KEY_tag, 12345);
|
||||||
|
|
||||||
auto arguments_map = tr_variant::Map{ 2U };
|
auto arguments_map = tr_variant::Map{ 2U };
|
||||||
@@ -343,7 +339,7 @@ TEST_F(RpcTest, NotificationSync)
|
|||||||
{
|
{
|
||||||
auto request_map = tr_variant::Map{ 2U };
|
auto request_map = tr_variant::Map{ 2U };
|
||||||
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
||||||
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_stats)));
|
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_stats));
|
||||||
|
|
||||||
auto response = tr_variant{};
|
auto response = tr_variant{};
|
||||||
tr_rpc_request_exec(
|
tr_rpc_request_exec(
|
||||||
@@ -361,7 +357,7 @@ TEST_F(RpcTest, NotificationAsync)
|
|||||||
|
|
||||||
auto request_map = tr_variant::Map{ 2U };
|
auto request_map = tr_variant::Map{ 2U };
|
||||||
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
||||||
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_rename_path)));
|
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_torrent_rename_path));
|
||||||
|
|
||||||
auto params_map = tr_variant::Map{ 2U };
|
auto params_map = tr_variant::Map{ 2U };
|
||||||
params_map.try_emplace(TR_KEY_path, "files-filled-with-zeroes/512");
|
params_map.try_emplace(TR_KEY_path, "files-filled-with-zeroes/512");
|
||||||
@@ -444,18 +440,18 @@ TEST_F(RpcTest, batch)
|
|||||||
|
|
||||||
auto request = tr_variant::Map{ 3U };
|
auto request = tr_variant::Map{ 3U };
|
||||||
request.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
request.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
||||||
request.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_stats_kebab)));
|
request.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_stats_kebab));
|
||||||
request.try_emplace(TR_KEY_id, 12345);
|
request.try_emplace(TR_KEY_id, 12345);
|
||||||
request_vec.emplace_back(std::move(request));
|
request_vec.emplace_back(std::move(request));
|
||||||
|
|
||||||
request = tr_variant::Map{ 2U };
|
request = tr_variant::Map{ 2U };
|
||||||
request.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
request.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
||||||
request.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_set_kebab)));
|
request.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_set_kebab));
|
||||||
request_vec.emplace_back(std::move(request));
|
request_vec.emplace_back(std::move(request));
|
||||||
|
|
||||||
request = tr_variant::Map{ 3U };
|
request = tr_variant::Map{ 3U };
|
||||||
request.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
request.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
||||||
request.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_stats_kebab)));
|
request.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_stats_kebab));
|
||||||
request.try_emplace(TR_KEY_id, "12345"sv);
|
request.try_emplace(TR_KEY_id, "12345"sv);
|
||||||
request_vec.emplace_back(std::move(request));
|
request_vec.emplace_back(std::move(request));
|
||||||
|
|
||||||
@@ -477,7 +473,7 @@ TEST_F(RpcTest, batch)
|
|||||||
request_vec.emplace_back(std::move(request));
|
request_vec.emplace_back(std::move(request));
|
||||||
|
|
||||||
request = tr_variant::Map{ 2U };
|
request = tr_variant::Map{ 2U };
|
||||||
request.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_stats_kebab)));
|
request.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_stats_kebab));
|
||||||
request.try_emplace(TR_KEY_tag, 12345);
|
request.try_emplace(TR_KEY_tag, 12345);
|
||||||
request_vec.emplace_back(std::move(request));
|
request_vec.emplace_back(std::move(request));
|
||||||
|
|
||||||
@@ -596,7 +592,7 @@ TEST_F(RpcTest, sessionGet)
|
|||||||
|
|
||||||
auto request_map = tr_variant::Map{ 3U };
|
auto request_map = tr_variant::Map{ 3U };
|
||||||
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
request_map.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
||||||
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_get)));
|
request_map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_get));
|
||||||
request_map.try_emplace(TR_KEY_id, 12345);
|
request_map.try_emplace(TR_KEY_id, 12345);
|
||||||
auto response = tr_variant{};
|
auto response = tr_variant{};
|
||||||
tr_rpc_request_exec(
|
tr_rpc_request_exec(
|
||||||
@@ -768,7 +764,7 @@ TEST_F(RpcTest, torrentGet)
|
|||||||
auto request = tr_variant::Map{ 3U };
|
auto request = tr_variant::Map{ 3U };
|
||||||
|
|
||||||
request.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
request.try_emplace(TR_KEY_jsonrpc, JsonRpc::Version);
|
||||||
request.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_get)));
|
request.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_torrent_get));
|
||||||
request.try_emplace(TR_KEY_id, 12345);
|
request.try_emplace(TR_KEY_id, 12345);
|
||||||
|
|
||||||
auto params = tr_variant::Map{ 1U };
|
auto params = tr_variant::Map{ 1U };
|
||||||
|
|||||||
@@ -24,7 +24,11 @@
|
|||||||
|
|
||||||
using namespace std::literals;
|
using namespace std::literals;
|
||||||
|
|
||||||
using VariantTest = ::testing::Test;
|
class VariantTest : public ::testing::Test
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
static void expectVariantMatchesQuark(tr_quark key);
|
||||||
|
};
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#define STACK_SMASH_DEPTH (1 * 1000 * 1000)
|
#define STACK_SMASH_DEPTH (1 * 1000 * 1000)
|
||||||
@@ -82,6 +86,35 @@ TEST_F(VariantTest, getType)
|
|||||||
EXPECT_EQ(strkey, *sv);
|
EXPECT_EQ(strkey, *sv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
void VariantTest::expectVariantMatchesQuark(tr_quark const key)
|
||||||
|
{
|
||||||
|
auto const key_sv = tr_quark_get_string_view(key);
|
||||||
|
|
||||||
|
auto const var = tr_variant::unmanaged_string(key);
|
||||||
|
auto const var_sv = var.value_if<std::string_view>();
|
||||||
|
ASSERT_TRUE(var_sv);
|
||||||
|
|
||||||
|
// The strings should not just be equal,
|
||||||
|
// but should point to literally the same memory
|
||||||
|
EXPECT_EQ(key_sv, *var_sv);
|
||||||
|
EXPECT_EQ(std::data(key_sv), std::data(*var_sv));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(VariantTest, unmanagedStringFromPredefinedQuark)
|
||||||
|
{
|
||||||
|
expectVariantMatchesQuark(TR_KEY_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(VariantTest, unmanagedStringFromNewQuark)
|
||||||
|
{
|
||||||
|
static auto constexpr NewString = std::string_view{ "this-string-is-not-already-interned" };
|
||||||
|
ASSERT_FALSE(tr_quark_lookup(NewString));
|
||||||
|
|
||||||
|
auto const key = tr_quark_new(NewString);
|
||||||
|
expectVariantMatchesQuark(key);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(VariantTest, parseInt)
|
TEST_F(VariantTest, parseInt)
|
||||||
{
|
{
|
||||||
static auto constexpr Benc = "i64e"sv;
|
static auto constexpr Benc = "i64e"sv;
|
||||||
|
|||||||
@@ -2525,7 +2525,7 @@ tr_variant::Map& ensure_sset(tr_variant& sset)
|
|||||||
{
|
{
|
||||||
sset = tr_variant::Map{ 3 };
|
sset = tr_variant::Map{ 3 };
|
||||||
map = sset.get_if<tr_variant::Map>();
|
map = sset.get_if<tr_variant::Map>();
|
||||||
map->try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_set_kebab)));
|
map->try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_set_kebab));
|
||||||
}
|
}
|
||||||
|
|
||||||
auto* args = map->find_if<tr_variant::Map>(TR_KEY_arguments);
|
auto* args = map->find_if<tr_variant::Map>(TR_KEY_arguments);
|
||||||
@@ -2543,7 +2543,7 @@ tr_variant::Map& ensure_tset(tr_variant& tset)
|
|||||||
{
|
{
|
||||||
tset = tr_variant::Map{ 3 };
|
tset = tr_variant::Map{ 3 };
|
||||||
map = tset.get_if<tr_variant::Map>();
|
map = tset.get_if<tr_variant::Map>();
|
||||||
map->try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_set_kebab)));
|
map->try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_torrent_set_kebab));
|
||||||
}
|
}
|
||||||
|
|
||||||
auto* args = map->find_if<tr_variant::Map>(TR_KEY_arguments);
|
auto* args = map->find_if<tr_variant::Map>(TR_KEY_arguments);
|
||||||
@@ -2561,7 +2561,7 @@ tr_variant::Map& ensure_tadd(tr_variant& tadd)
|
|||||||
{
|
{
|
||||||
tadd = tr_variant::Map{ 3 };
|
tadd = tr_variant::Map{ 3 };
|
||||||
map = tadd.get_if<tr_variant::Map>();
|
map = tadd.get_if<tr_variant::Map>();
|
||||||
map->try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_add_kebab)));
|
map->try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_torrent_add_kebab));
|
||||||
map->try_emplace(TR_KEY_tag, TAG_TORRENT_ADD);
|
map->try_emplace(TR_KEY_tag, TAG_TORRENT_ADD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2745,7 +2745,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
|
|
||||||
for (auto const& key : DetailsKeys)
|
for (auto const& key : DetailsKeys)
|
||||||
{
|
{
|
||||||
fields.emplace_back(tr_variant::unmanaged_string(tr_quark_get_string_view(key)));
|
fields.emplace_back(tr_variant::unmanaged_string(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
add_id_arg(args, config, "all");
|
add_id_arg(args, config, "all");
|
||||||
@@ -2755,7 +2755,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
|
|
||||||
for (auto const& key : DetailsKeys)
|
for (auto const& key : DetailsKeys)
|
||||||
{
|
{
|
||||||
fields.emplace_back(tr_variant::unmanaged_string(tr_quark_get_string_view(key)));
|
fields.emplace_back(tr_variant::unmanaged_string(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
@@ -2766,7 +2766,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
|
|
||||||
for (auto const& key : ListKeys)
|
for (auto const& key : ListKeys)
|
||||||
{
|
{
|
||||||
fields.emplace_back(tr_variant::unmanaged_string(tr_quark_get_string_view(key)));
|
fields.emplace_back(tr_variant::unmanaged_string(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
add_id_arg(args, config, "all");
|
add_id_arg(args, config, "all");
|
||||||
@@ -2777,7 +2777,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
|
|
||||||
for (auto const& key : FilesKeys)
|
for (auto const& key : FilesKeys)
|
||||||
{
|
{
|
||||||
fields.emplace_back(tr_variant::unmanaged_string(tr_quark_get_string_view(key)));
|
fields.emplace_back(tr_variant::unmanaged_string(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
@@ -2785,20 +2785,20 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
|
|
||||||
case 941:
|
case 941:
|
||||||
map.insert_or_assign(TR_KEY_tag, TAG_PEERS);
|
map.insert_or_assign(TR_KEY_tag, TAG_PEERS);
|
||||||
fields.emplace_back(tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_peers)));
|
fields.emplace_back(tr_variant::unmanaged_string(TR_KEY_peers));
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 942:
|
case 942:
|
||||||
map.insert_or_assign(TR_KEY_tag, TAG_PIECES);
|
map.insert_or_assign(TR_KEY_tag, TAG_PIECES);
|
||||||
fields.emplace_back(tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_pieces)));
|
fields.emplace_back(tr_variant::unmanaged_string(TR_KEY_pieces));
|
||||||
fields.emplace_back(tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_piece_count_camel)));
|
fields.emplace_back(tr_variant::unmanaged_string(TR_KEY_piece_count_camel));
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 943:
|
case 943:
|
||||||
map.insert_or_assign(TR_KEY_tag, TAG_TRACKERS);
|
map.insert_or_assign(TR_KEY_tag, TAG_TRACKERS);
|
||||||
fields.emplace_back(tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_tracker_stats_camel)));
|
fields.emplace_back(tr_variant::unmanaged_string(TR_KEY_tracker_stats_camel));
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -2808,7 +2808,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
}
|
}
|
||||||
|
|
||||||
args.insert_or_assign(TR_KEY_fields, std::move(fields));
|
args.insert_or_assign(TR_KEY_fields, std::move(fields));
|
||||||
fields.emplace_back(tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_get_kebab)));
|
fields.emplace_back(tr_variant::unmanaged_string(TR_KEY_torrent_get_kebab));
|
||||||
map.insert_or_assign(TR_KEY_arguments, std::move(args));
|
map.insert_or_assign(TR_KEY_arguments, std::move(args));
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
status |= flush(rpcurl, &top, config);
|
status |= flush(rpcurl, &top, config);
|
||||||
@@ -3240,7 +3240,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
args.try_emplace(TR_KEY_delete_local_data_kebab, c == 840);
|
args.try_emplace(TR_KEY_delete_local_data_kebab, c == 840);
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
|
|
||||||
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_remove_kebab)));
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_torrent_remove_kebab));
|
||||||
map.try_emplace(TR_KEY_arguments, std::move(args));
|
map.try_emplace(TR_KEY_arguments, std::move(args));
|
||||||
|
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
@@ -3264,7 +3264,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
auto args = tr_variant::Map{ 1 };
|
auto args = tr_variant::Map{ 1 };
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
auto const key = is_stop ? TR_KEY_torrent_stop_kebab : TR_KEY_torrent_start_kebab;
|
auto const key = is_stop ? TR_KEY_torrent_stop_kebab : TR_KEY_torrent_start_kebab;
|
||||||
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(key)));
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(key));
|
||||||
map.try_emplace(TR_KEY_arguments, std::move(args));
|
map.try_emplace(TR_KEY_arguments, std::move(args));
|
||||||
|
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
@@ -3302,7 +3302,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
auto args = tr_variant::Map{ 1 };
|
auto args = tr_variant::Map{ 1 };
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
auto const key = Method(c);
|
auto const key = Method(c);
|
||||||
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(tr_quark_get_string_view(key)));
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(key));
|
||||||
map.try_emplace(TR_KEY_arguments, std::move(args));
|
map.try_emplace(TR_KEY_arguments, std::move(args));
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
status |= flush(rpcurl, &top, config);
|
status |= flush(rpcurl, &top, config);
|
||||||
@@ -3314,9 +3314,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
case 920: /* session-info */
|
case 920: /* session-info */
|
||||||
{
|
{
|
||||||
auto map = tr_variant::Map{ 2 };
|
auto map = tr_variant::Map{ 2 };
|
||||||
map.try_emplace(
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_get_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_get_kebab)));
|
|
||||||
map.try_emplace(TR_KEY_tag, TAG_SESSION);
|
map.try_emplace(TR_KEY_tag, TAG_SESSION);
|
||||||
|
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
@@ -3334,9 +3332,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
case 850:
|
case 850:
|
||||||
{
|
{
|
||||||
auto map = tr_variant::Map{ 1 };
|
auto map = tr_variant::Map{ 1 };
|
||||||
map.try_emplace(
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_close_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_close_kebab)));
|
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
status |= flush(rpcurl, &top, config);
|
status |= flush(rpcurl, &top, config);
|
||||||
}
|
}
|
||||||
@@ -3345,9 +3341,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
case 963:
|
case 963:
|
||||||
{
|
{
|
||||||
auto map = tr_variant::Map{ 1 };
|
auto map = tr_variant::Map{ 1 };
|
||||||
map.try_emplace(
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_blocklist_update_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_blocklist_update_kebab)));
|
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
status |= flush(rpcurl, &top, config);
|
status |= flush(rpcurl, &top, config);
|
||||||
}
|
}
|
||||||
@@ -3356,9 +3350,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
case 921:
|
case 921:
|
||||||
{
|
{
|
||||||
auto map = tr_variant::Map{ 2 };
|
auto map = tr_variant::Map{ 2 };
|
||||||
map.try_emplace(
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_session_stats_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_session_stats_kebab)));
|
|
||||||
map.try_emplace(TR_KEY_tag, TAG_STATS);
|
map.try_emplace(TR_KEY_tag, TAG_STATS);
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
status |= flush(rpcurl, &top, config);
|
status |= flush(rpcurl, &top, config);
|
||||||
@@ -3368,9 +3360,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
case 962:
|
case 962:
|
||||||
{
|
{
|
||||||
auto map = tr_variant::Map{ 2 };
|
auto map = tr_variant::Map{ 2 };
|
||||||
map.try_emplace(
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_port_test_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_port_test_kebab)));
|
|
||||||
map.try_emplace(TR_KEY_tag, TAG_PORTTEST);
|
map.try_emplace(TR_KEY_tag, TAG_PORTTEST);
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
status |= flush(rpcurl, &top, config);
|
status |= flush(rpcurl, &top, config);
|
||||||
@@ -3384,9 +3374,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
args.try_emplace(TR_KEY_location, optarg_sv);
|
args.try_emplace(TR_KEY_location, optarg_sv);
|
||||||
args.try_emplace(TR_KEY_move, true);
|
args.try_emplace(TR_KEY_move, true);
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
map.try_emplace(
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_torrent_set_location_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_set_location_kebab)));
|
|
||||||
map.try_emplace(TR_KEY_arguments, std::move(args));
|
map.try_emplace(TR_KEY_arguments, std::move(args));
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
status |= flush(rpcurl, &top, config);
|
status |= flush(rpcurl, &top, config);
|
||||||
@@ -3413,9 +3401,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
args.try_emplace(TR_KEY_location, optarg_sv);
|
args.try_emplace(TR_KEY_location, optarg_sv);
|
||||||
args.try_emplace(TR_KEY_move, false);
|
args.try_emplace(TR_KEY_move, false);
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
map.try_emplace(
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_torrent_set_location_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_set_location_kebab)));
|
|
||||||
map.try_emplace(TR_KEY_arguments, std::move(args));
|
map.try_emplace(TR_KEY_arguments, std::move(args));
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
status |= flush(rpcurl, &top, config);
|
status |= flush(rpcurl, &top, config);
|
||||||
@@ -3429,9 +3415,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
args.try_emplace(TR_KEY_path, rename_from);
|
args.try_emplace(TR_KEY_path, rename_from);
|
||||||
args.try_emplace(TR_KEY_name, optarg_sv);
|
args.try_emplace(TR_KEY_name, optarg_sv);
|
||||||
add_id_arg(args, config);
|
add_id_arg(args, config);
|
||||||
map.try_emplace(
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_torrent_rename_path_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_torrent_rename_path_kebab)));
|
|
||||||
map.try_emplace(TR_KEY_arguments, std::move(args));
|
map.try_emplace(TR_KEY_arguments, std::move(args));
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
status |= flush(rpcurl, &top, config);
|
status |= flush(rpcurl, &top, config);
|
||||||
@@ -3446,9 +3430,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo
|
|||||||
case 732:
|
case 732:
|
||||||
{
|
{
|
||||||
auto map = tr_variant::Map{ 2 };
|
auto map = tr_variant::Map{ 2 };
|
||||||
map.try_emplace(
|
map.try_emplace(TR_KEY_method, tr_variant::unmanaged_string(TR_KEY_group_get_kebab));
|
||||||
TR_KEY_method,
|
|
||||||
tr_variant::unmanaged_string(tr_quark_get_string_view(TR_KEY_group_get_kebab)));
|
|
||||||
map.try_emplace(TR_KEY_tag, TAG_GROUPS);
|
map.try_emplace(TR_KEY_tag, TAG_GROUPS);
|
||||||
auto top = tr_variant{ std::move(map) };
|
auto top = tr_variant{ std::move(map) };
|
||||||
status |= flush(rpcurl, &top, config);
|
status |= flush(rpcurl, &top, config);
|
||||||
|
|||||||
Reference in New Issue
Block a user