summaryrefslogtreecommitdiff
path: root/src/DefaultBtAnnounce.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2015-06-08 02:03:31 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2015-06-09 02:05:34 +0900
commit99cd73c0926f0c07d27777fde2f15816e8040030 (patch)
tree7c6a077b0590c49029c76686afb9c2ab1d00bb6d /src/DefaultBtAnnounce.cc
parent2874f6ab095a30a4d297cdc85fa3730bec41b1c2 (diff)
Replace timer facility with chrono lib
Diffstat (limited to 'src/DefaultBtAnnounce.cc')
-rw-r--r--src/DefaultBtAnnounce.cc33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/DefaultBtAnnounce.cc b/src/DefaultBtAnnounce.cc
index f7d491cf..34042525 100644
--- a/src/DefaultBtAnnounce.cc
+++ b/src/DefaultBtAnnounce.cc
@@ -61,10 +61,10 @@ DefaultBtAnnounce::DefaultBtAnnounce
(DownloadContext* downloadContext, const Option* option)
: downloadContext_{downloadContext},
trackers_(0),
- prevAnnounceTimer_(0),
+ prevAnnounceTimer_(Timer::zero()),
interval_(DEFAULT_ANNOUNCE_INTERVAL),
minInterval_(DEFAULT_ANNOUNCE_INTERVAL),
- userDefinedInterval_(0),
+ userDefinedInterval_(std::chrono::seconds(0)),
complete_(0),
incomplete_(0),
announceList_(bittorrent::getTorrentAttrs(downloadContext)->announceList),
@@ -77,12 +77,11 @@ DefaultBtAnnounce::~DefaultBtAnnounce() {
}
bool DefaultBtAnnounce::isDefaultAnnounceReady() {
- return
- (trackers_ == 0 &&
- prevAnnounceTimer_.
- difference(global::wallclock()) >= (userDefinedInterval_==0?
- minInterval_:userDefinedInterval_) &&
- !announceList_.allTiersFailed());
+ return (trackers_ == 0 &&
+ prevAnnounceTimer_.difference(global::wallclock()) >=
+ (userDefinedInterval_.count() == 0 ? minInterval_
+ : userDefinedInterval_) &&
+ !announceList_.allTiersFailed());
}
bool DefaultBtAnnounce::isStoppedAnnounceReady() {
@@ -305,13 +304,14 @@ DefaultBtAnnounce::processAnnounceResponse(const unsigned char* trackerResponse,
}
const Integer* ival = downcast<Integer>(dict->get(BtAnnounce::INTERVAL));
if(ival && ival->i() > 0) {
- interval_ = ival->i();
- A2_LOG_DEBUG(fmt("Interval:%ld", static_cast<long int>(interval_)));
+ interval_ = std::chrono::seconds(ival->i());
+ A2_LOG_DEBUG(fmt("Interval:%ld", static_cast<long int>(interval_.count())));
}
const Integer* mival = downcast<Integer>(dict->get(BtAnnounce::MIN_INTERVAL));
if(mival && mival->i() > 0) {
- minInterval_ = mival->i();
- A2_LOG_DEBUG(fmt("Min interval:%ld", static_cast<long int>(minInterval_)));
+ minInterval_ = std::chrono::seconds(mival->i());
+ A2_LOG_DEBUG(
+ fmt("Min interval:%ld", static_cast<long int>(minInterval_.count())));
minInterval_ = std::min(minInterval_, interval_);
} else {
// Use interval as a minInterval if minInterval is not supplied.
@@ -355,8 +355,9 @@ void DefaultBtAnnounce::processUDPTrackerResponse
const std::shared_ptr<UDPTrackerReply>& reply = req->reply;
A2_LOG_DEBUG("Now processing UDP tracker response.");
if(reply->interval > 0) {
- minInterval_ = reply->interval;
- A2_LOG_DEBUG(fmt("Min interval:%ld", static_cast<long int>(minInterval_)));
+ minInterval_ = std::chrono::seconds(reply->interval);
+ A2_LOG_DEBUG(
+ fmt("Min interval:%ld", static_cast<long int>(minInterval_.count())));
interval_ = minInterval_;
}
complete_ = reply->seeders;
@@ -401,9 +402,9 @@ void DefaultBtAnnounce::setPeerStorage
peerStorage_ = peerStorage;
}
-void DefaultBtAnnounce::overrideMinInterval(time_t interval)
+void DefaultBtAnnounce::overrideMinInterval(std::chrono::seconds interval)
{
- minInterval_ = interval;
+ minInterval_ = std::move(interval);
}
} // namespace aria2