mirror of
https://github.com/transmission/transmission
synced 2025-02-21 21:57:01 +00:00
refactor: make tr_session.queue fields private (#3634)
This commit is contained in:
parent
403e81e163
commit
ed6ee619a6
5 changed files with 58 additions and 34 deletions
|
@ -2540,7 +2540,7 @@ void queuePulse(tr_session* session, tr_direction dir)
|
|||
TR_ASSERT(tr_isSession(session));
|
||||
TR_ASSERT(tr_isDirection(dir));
|
||||
|
||||
if (tr_sessionGetQueueEnabled(session, dir))
|
||||
if (session->queueEnabled(dir))
|
||||
{
|
||||
auto const n = tr_sessionCountQueueFreeSlots(session, dir);
|
||||
|
||||
|
|
|
@ -2178,11 +2178,11 @@ static void addSessionField(tr_session const* s, tr_variant* d, tr_quark key)
|
|||
break;
|
||||
|
||||
case TR_KEY_download_queue_enabled:
|
||||
tr_variantDictAddBool(d, key, tr_sessionGetQueueEnabled(s, TR_DOWN));
|
||||
tr_variantDictAddBool(d, key, s->queueEnabled(TR_DOWN));
|
||||
break;
|
||||
|
||||
case TR_KEY_download_queue_size:
|
||||
tr_variantDictAddInt(d, key, tr_sessionGetQueueSize(s, TR_DOWN));
|
||||
tr_variantDictAddInt(d, key, s->queueSize(TR_DOWN));
|
||||
break;
|
||||
|
||||
case TR_KEY_peer_limit_global:
|
||||
|
@ -2262,11 +2262,11 @@ static void addSessionField(tr_session const* s, tr_variant* d, tr_quark key)
|
|||
break;
|
||||
|
||||
case TR_KEY_seed_queue_enabled:
|
||||
tr_variantDictAddBool(d, key, tr_sessionGetQueueEnabled(s, TR_UP));
|
||||
tr_variantDictAddBool(d, key, s->queueEnabled(TR_UP));
|
||||
break;
|
||||
|
||||
case TR_KEY_seed_queue_size:
|
||||
tr_variantDictAddInt(d, key, tr_sessionGetQueueSize(s, TR_UP));
|
||||
tr_variantDictAddInt(d, key, s->queueSize(TR_UP));
|
||||
break;
|
||||
|
||||
case TR_KEY_start_added_torrents:
|
||||
|
@ -2318,11 +2318,11 @@ static void addSessionField(tr_session const* s, tr_variant* d, tr_quark key)
|
|||
break;
|
||||
|
||||
case TR_KEY_queue_stalled_enabled:
|
||||
tr_variantDictAddBool(d, key, tr_sessionGetQueueStalledEnabled(s));
|
||||
tr_variantDictAddBool(d, key, s->queueStalledEnabled());
|
||||
break;
|
||||
|
||||
case TR_KEY_queue_stalled_minutes:
|
||||
tr_variantDictAddInt(d, key, tr_sessionGetQueueStalledMinutes(s));
|
||||
tr_variantDictAddInt(d, key, s->queueStalledMinutes());
|
||||
break;
|
||||
|
||||
case TR_KEY_anti_brute_force_enabled:
|
||||
|
|
|
@ -407,8 +407,8 @@ void tr_sessionGetSettings(tr_session const* s, tr_variant* setme_dictionary)
|
|||
tr_variantDictAddBool(d, TR_KEY_lpd_enabled, s->isLPDEnabled);
|
||||
tr_variantDictAddStr(d, TR_KEY_download_dir, tr_sessionGetDownloadDir(s));
|
||||
tr_variantDictAddStr(d, TR_KEY_default_trackers, s->defaultTrackersStr());
|
||||
tr_variantDictAddInt(d, TR_KEY_download_queue_size, tr_sessionGetQueueSize(s, TR_DOWN));
|
||||
tr_variantDictAddBool(d, TR_KEY_download_queue_enabled, tr_sessionGetQueueEnabled(s, TR_DOWN));
|
||||
tr_variantDictAddInt(d, TR_KEY_download_queue_size, s->queueSize(TR_DOWN));
|
||||
tr_variantDictAddBool(d, TR_KEY_download_queue_enabled, s->queueEnabled(TR_DOWN));
|
||||
tr_variantDictAddInt(d, TR_KEY_speed_limit_down, tr_sessionGetSpeedLimit_KBps(s, TR_DOWN));
|
||||
tr_variantDictAddBool(d, TR_KEY_speed_limit_down_enabled, tr_sessionIsSpeedLimited(s, TR_DOWN));
|
||||
tr_variantDictAddInt(d, TR_KEY_encryption, s->encryptionMode);
|
||||
|
@ -430,8 +430,8 @@ void tr_sessionGetSettings(tr_session const* s, tr_variant* setme_dictionary)
|
|||
tr_variantDictAddInt(d, TR_KEY_preallocation, s->preallocationMode);
|
||||
tr_variantDictAddBool(d, TR_KEY_prefetch_enabled, s->isPrefetchEnabled);
|
||||
tr_variantDictAddInt(d, TR_KEY_peer_id_ttl_hours, s->peer_id_ttl_hours);
|
||||
tr_variantDictAddBool(d, TR_KEY_queue_stalled_enabled, tr_sessionGetQueueStalledEnabled(s));
|
||||
tr_variantDictAddInt(d, TR_KEY_queue_stalled_minutes, tr_sessionGetQueueStalledMinutes(s));
|
||||
tr_variantDictAddBool(d, TR_KEY_queue_stalled_enabled, s->queueStalledEnabled());
|
||||
tr_variantDictAddInt(d, TR_KEY_queue_stalled_minutes, s->queueStalledMinutes());
|
||||
tr_variantDictAddReal(d, TR_KEY_ratio_limit, s->desiredRatio);
|
||||
tr_variantDictAddBool(d, TR_KEY_ratio_limit_enabled, s->isRatioLimited);
|
||||
tr_variantDictAddBool(d, TR_KEY_rename_partial_files, tr_sessionIsIncompleteFileNamingEnabled(s));
|
||||
|
@ -446,8 +446,8 @@ void tr_sessionGetSettings(tr_session const* s, tr_variant* setme_dictionary)
|
|||
tr_variantDictAddStr(d, TR_KEY_rpc_whitelist, tr_sessionGetRPCWhitelist(s));
|
||||
tr_variantDictAddBool(d, TR_KEY_rpc_whitelist_enabled, tr_sessionGetRPCWhitelistEnabled(s));
|
||||
tr_variantDictAddBool(d, TR_KEY_scrape_paused_torrents_enabled, s->scrapePausedTorrents);
|
||||
tr_variantDictAddInt(d, TR_KEY_seed_queue_size, tr_sessionGetQueueSize(s, TR_UP));
|
||||
tr_variantDictAddBool(d, TR_KEY_seed_queue_enabled, tr_sessionGetQueueEnabled(s, TR_UP));
|
||||
tr_variantDictAddInt(d, TR_KEY_seed_queue_size, s->queueSize(TR_UP));
|
||||
tr_variantDictAddBool(d, TR_KEY_seed_queue_enabled, s->queueEnabled(TR_UP));
|
||||
tr_variantDictAddBool(d, TR_KEY_alt_speed_enabled, tr_sessionUsesAltSpeed(s));
|
||||
tr_variantDictAddInt(d, TR_KEY_alt_speed_up, tr_sessionGetAltSpeed_KBps(s, TR_UP));
|
||||
tr_variantDictAddInt(d, TR_KEY_alt_speed_down, tr_sessionGetAltSpeed_KBps(s, TR_DOWN));
|
||||
|
@ -2621,7 +2621,7 @@ void tr_sessionSetQueueSize(tr_session* session, tr_direction dir, int max_simul
|
|||
TR_ASSERT(tr_isSession(session));
|
||||
TR_ASSERT(tr_isDirection(dir));
|
||||
|
||||
session->queueSize[dir] = max_simultaneous_seed_torrents;
|
||||
session->queue_size_[dir] = max_simultaneous_seed_torrents;
|
||||
}
|
||||
|
||||
int tr_sessionGetQueueSize(tr_session const* session, tr_direction dir)
|
||||
|
@ -2629,7 +2629,7 @@ int tr_sessionGetQueueSize(tr_session const* session, tr_direction dir)
|
|||
TR_ASSERT(tr_isSession(session));
|
||||
TR_ASSERT(tr_isDirection(dir));
|
||||
|
||||
return session->queueSize[dir];
|
||||
return session->queueSize(dir);
|
||||
}
|
||||
|
||||
void tr_sessionSetQueueEnabled(tr_session* session, tr_direction dir, bool do_limit_simultaneous_seed_torrents)
|
||||
|
@ -2637,7 +2637,7 @@ void tr_sessionSetQueueEnabled(tr_session* session, tr_direction dir, bool do_li
|
|||
TR_ASSERT(tr_isSession(session));
|
||||
TR_ASSERT(tr_isDirection(dir));
|
||||
|
||||
session->queueEnabled[dir] = do_limit_simultaneous_seed_torrents;
|
||||
session->queue_enabled_[dir] = do_limit_simultaneous_seed_torrents;
|
||||
}
|
||||
|
||||
bool tr_sessionGetQueueEnabled(tr_session const* session, tr_direction dir)
|
||||
|
@ -2645,7 +2645,7 @@ bool tr_sessionGetQueueEnabled(tr_session const* session, tr_direction dir)
|
|||
TR_ASSERT(tr_isSession(session));
|
||||
TR_ASSERT(tr_isDirection(dir));
|
||||
|
||||
return session->queueEnabled[dir];
|
||||
return session->queueEnabled(dir);
|
||||
}
|
||||
|
||||
void tr_sessionSetQueueStalledMinutes(tr_session* session, int minutes)
|
||||
|
@ -2653,28 +2653,28 @@ void tr_sessionSetQueueStalledMinutes(tr_session* session, int minutes)
|
|||
TR_ASSERT(tr_isSession(session));
|
||||
TR_ASSERT(minutes > 0);
|
||||
|
||||
session->queueStalledMinutes = minutes;
|
||||
session->queue_stalled_minutes_ = minutes;
|
||||
}
|
||||
|
||||
void tr_sessionSetQueueStalledEnabled(tr_session* session, bool is_enabled)
|
||||
{
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
session->stalledEnabled = is_enabled;
|
||||
session->queue_stalled_enabled_ = is_enabled;
|
||||
}
|
||||
|
||||
bool tr_sessionGetQueueStalledEnabled(tr_session const* session)
|
||||
{
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
return session->stalledEnabled;
|
||||
return session->queueStalledEnabled();
|
||||
}
|
||||
|
||||
int tr_sessionGetQueueStalledMinutes(tr_session const* session)
|
||||
{
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
return session->queueStalledMinutes;
|
||||
return session->queueStalledMinutes();
|
||||
}
|
||||
|
||||
void tr_sessionSetAntiBruteForceThreshold(tr_session* session, int max_bad_requests)
|
||||
|
@ -2739,18 +2739,18 @@ std::vector<tr_torrent*> tr_sessionGetNextQueuedTorrents(tr_session* session, tr
|
|||
|
||||
int tr_sessionCountQueueFreeSlots(tr_session* session, tr_direction dir)
|
||||
{
|
||||
int const max = tr_sessionGetQueueSize(session, dir);
|
||||
auto const max = session->queueSize(dir);
|
||||
tr_torrent_activity const activity = dir == TR_UP ? TR_STATUS_SEED : TR_STATUS_DOWNLOAD;
|
||||
|
||||
if (!tr_sessionGetQueueEnabled(session, dir))
|
||||
if (!session->queueEnabled(dir))
|
||||
{
|
||||
return INT_MAX;
|
||||
}
|
||||
|
||||
/* count how many torrents are active */
|
||||
int active_count = 0;
|
||||
bool const stalled_enabled = tr_sessionGetQueueStalledEnabled(session);
|
||||
int const stalled_if_idle_for_n_seconds = tr_sessionGetQueueStalledMinutes(session) * 60;
|
||||
bool const stalled_enabled = session->queueStalledEnabled();
|
||||
int const stalled_if_idle_for_n_seconds = session->queueStalledMinutes() * 60;
|
||||
time_t const now = tr_time();
|
||||
for (auto const* const tor : session->torrents())
|
||||
{
|
||||
|
|
|
@ -482,11 +482,6 @@ public:
|
|||
|
||||
uint8_t peer_id_ttl_hours = 0;
|
||||
|
||||
bool stalledEnabled = false;
|
||||
bool queueEnabled[2] = { false, false };
|
||||
int queueSize[2] = { 0, 0 };
|
||||
int queueStalledMinutes = 0;
|
||||
|
||||
int umask = 0;
|
||||
|
||||
unsigned int speedLimit_Bps[2] = { 0, 0 };
|
||||
|
@ -602,10 +597,34 @@ public:
|
|||
// Only session.cc should use this.
|
||||
int peer_socket_tos_ = *tr_netTosFromName(TR_DEFAULT_PEER_SOCKET_TOS_STR);
|
||||
|
||||
[[nodiscard]] auto constexpr queueEnabled(tr_direction dir) const noexcept
|
||||
{
|
||||
return queue_enabled_[dir];
|
||||
}
|
||||
|
||||
[[nodiscard]] auto constexpr queueSize(tr_direction dir) const noexcept
|
||||
{
|
||||
return queue_size_[dir];
|
||||
}
|
||||
|
||||
[[nodiscard]] auto constexpr queueStalledEnabled() const noexcept
|
||||
{
|
||||
return queue_stalled_enabled_;
|
||||
}
|
||||
|
||||
[[nodiscard]] auto constexpr queueStalledMinutes() const noexcept
|
||||
{
|
||||
return queue_stalled_minutes_;
|
||||
}
|
||||
|
||||
private:
|
||||
friend tr_session* tr_sessionInit(char const* config_dir, bool message_queueing_enabled, tr_variant* client_settings);
|
||||
friend void tr_sessionSet(tr_session* session, tr_variant* settings);
|
||||
friend void tr_sessionClose(tr_session* session);
|
||||
friend void tr_sessionSet(tr_session* session, tr_variant* settings);
|
||||
friend void tr_sessionSetQueueEnabled(tr_session* session, tr_direction dir, bool do_limit_simultaneous_seed_torrents);
|
||||
friend void tr_sessionSetQueueSize(tr_session* session, tr_direction dir, int max_simultaneous_seed_torrents);
|
||||
friend void tr_sessionSetQueueStalledEnabled(tr_session* session, bool is_enabled);
|
||||
friend void tr_sessionSetQueueStalledMinutes(tr_session* session, int minutes);
|
||||
|
||||
struct init_data;
|
||||
void initImpl(init_data&);
|
||||
|
@ -614,6 +633,11 @@ private:
|
|||
void closeImplWaitForIdleUdp();
|
||||
void closeImplFinish();
|
||||
|
||||
std::array<bool, 2> queue_enabled_ = { false, false };
|
||||
std::array<int, 2> queue_size_ = { 0, 0 };
|
||||
int queue_stalled_minutes_ = 0;
|
||||
bool queue_stalled_enabled_ = false;
|
||||
|
||||
static std::recursive_mutex session_mutex_;
|
||||
|
||||
WebMediator web_mediator_{ this };
|
||||
|
|
|
@ -985,11 +985,11 @@ tr_torrent_activity tr_torrentGetActivity(tr_torrent const* tor)
|
|||
}
|
||||
else if (tor->isQueued())
|
||||
{
|
||||
if (is_seed && tr_sessionGetQueueEnabled(tor->session, TR_UP))
|
||||
if (is_seed && tor->session->queueEnabled(TR_UP))
|
||||
{
|
||||
ret = TR_STATUS_SEED_WAIT;
|
||||
}
|
||||
else if (!is_seed && tr_sessionGetQueueEnabled(tor->session, TR_DOWN))
|
||||
else if (!is_seed && tor->session->queueEnabled(TR_DOWN))
|
||||
{
|
||||
ret = TR_STATUS_DOWNLOAD_WAIT;
|
||||
}
|
||||
|
@ -1007,7 +1007,7 @@ static int torrentGetIdleSecs(tr_torrent const* tor, tr_torrent_activity activit
|
|||
|
||||
static inline bool tr_torrentIsStalled(tr_torrent const* tor, int idle_secs)
|
||||
{
|
||||
return tr_sessionGetQueueStalledEnabled(tor->session) && idle_secs > tr_sessionGetQueueStalledMinutes(tor->session) * 60;
|
||||
return tor->session->queueStalledEnabled() && idle_secs > tor->session->queueStalledMinutes() * 60;
|
||||
}
|
||||
|
||||
tr_stat const* tr_torrentStat(tr_torrent* tor)
|
||||
|
|
Loading…
Reference in a new issue