我目前正在使用Ragnar,它是一个 CLI Libtorrent 包装器。
我撞到了一堵砖墙。也许这是我正在使用的包装器的实现缺陷,或者我只是误解了 Libtorrent API 文档,但我无法弄清楚如何正确保存/加载当前的会话状态数据。
我现在的目标,我可以最好地说明,是torrent_handles
在当前会话中保存所有内容,这样当我下次运行我正在使用的 torrent 客户端时,我可以在启动时自动加载它们并继续下载/播种。
我仍然不确定是否应该通过保存会话状态来做到这一点。根据API 文档的措辞:
传递给 save_state 的标志参数可用于过滤要保存的会话状态的哪些部分。默认情况下,所有状态都被保存(单个种子除外)。
但我看不到与以下相关的标志individual torrents
:
enum save_state_flags_t
{
save_settings = 0x001,
save_dht_settings = 0x002,
save_dht_state = 0x004,
save_proxy = 0x008,
save_i2p_proxy = 0x010,
save_encryption_settings = 0x020,
save_as_map = 0x040,
save_feeds = 0x080
};
此外,包装器目前被硬编码为不接受这些标志:
cli::array<byte>^ Session::SaveState()
{
libtorrent::entry entry;
this->_session->save_state(entry);
return Utils::GetByteArrayFromLibtorrentEntry(entry);
}
这应该很容易解决,但我错过了什么吗?我是否试图通过错误的机制进行保存?