summaryrefslogtreecommitdiff
path: root/src/DefaultBtMessageDispatcher.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-03-06 08:29:53 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-03-06 08:29:53 +0000
commit8d09b069e2b709d8657f5fdbcf2a933515545f39 (patch)
tree431bf39e4ce0a90c7fb4804297562c0c4c93c478 /src/DefaultBtMessageDispatcher.cc
parent7637fd76a27d8a97cd32d7597d5afb3361fe0d28 (diff)
2010-03-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added Time global::wallclock to cache "current time" to reduce the call gettimeofday(). Global variables are now in namespace global. * src/AbstractCommand.cc * src/ActivePeerConnectionCommand.cc * src/AdaptiveURISelector.cc * src/BtLeecherStateChoke.cc * src/BtLeecherStateChoke.h * src/BtSeederStateChoke.cc * src/BtSeederStateChoke.h * src/BtStopDownloadCommand.cc * src/ConsoleStatCalc.cc * src/DHTBucket.cc * src/DHTGetPeersCommand.cc * src/DHTMessageTrackerEntry.cc * src/DHTNode.cc * src/DHTPeerAnnounceEntry.cc * src/DHTPeerAnnounceStorage.cc * src/DHTSetup.cc * src/DefaultBtAnnounce.cc * src/DefaultBtInteractive.cc * src/DefaultBtMessageDispatcher.cc * src/DefaultPeerStorage.cc * src/DefaultPieceStorage.cc * src/DownloadCommand.cc * src/DownloadEngine.cc * src/FileEntry.cc * src/HttpServerBodyCommand.cc * src/HttpServerCommand.cc * src/HttpServerResponseCommand.cc * src/LpdMessageDispatcher.cc * src/MultiUrlRequestInfo.cc * src/Peer.cc * src/Peer.h * src/PeerAbstractCommand.cc * src/PeerStat.h * src/RequestSlot.cc * src/RequestSlot.h * src/SegmentMan.cc * src/ServerStatMan.cc * src/SleepCommand.cc * src/SpeedCalc.cc * src/SpeedCalc.h * src/TimeA2.cc * src/TimeA2.h * src/TimeBasedCommand.cc * src/TimeSeedCriteria.h * src/UTMetadataRequestTracker.h * src/UTPexExtensionMessage.cc * src/wallclock.h
Diffstat (limited to 'src/DefaultBtMessageDispatcher.cc')
-rw-r--r--src/DefaultBtMessageDispatcher.cc15
1 files changed, 2 insertions, 13 deletions
diff --git a/src/DefaultBtMessageDispatcher.cc b/src/DefaultBtMessageDispatcher.cc
index 7c3cb8ca..f67e39ab 100644
--- a/src/DefaultBtMessageDispatcher.cc
+++ b/src/DefaultBtMessageDispatcher.cc
@@ -257,7 +257,6 @@ private:
SharedHandle<PieceStorage> _pieceStorage;
BtMessageDispatcher* _messageDispatcher;
WeakHandle<BtMessageFactory> _messageFactory;
- const struct timeval& _now;
time_t _requestTimeout;
Logger* _logger;
public:
@@ -265,20 +264,18 @@ public:
const SharedHandle<PieceStorage>& pieceStorage,
BtMessageDispatcher* dispatcher,
const WeakHandle<BtMessageFactory>& factory,
- const struct timeval& now,
time_t requestTimeout):
_cuid(cuid),
_peer(peer),
_pieceStorage(pieceStorage),
_messageDispatcher(dispatcher),
_messageFactory(factory),
- _now(now),
_requestTimeout(requestTimeout),
_logger(LogFactory::getInstance()) {}
void operator()(const RequestSlot& slot)
{
- if(slot.isTimeout(_now, _requestTimeout)) {
+ if(slot.isTimeout(_requestTimeout)) {
if(_logger->debug()) {
_logger->debug(MSG_DELETING_REQUEST_SLOT_TIMEOUT,
_cuid,
@@ -305,19 +302,16 @@ public:
class FindStaleRequestSlot {
private:
SharedHandle<PieceStorage> _pieceStorage;
- const struct timeval& _now;
time_t _requestTimeout;
public:
FindStaleRequestSlot(const SharedHandle<PieceStorage>& pieceStorage,
- const struct timeval& now,
time_t requestTimeout):
_pieceStorage(pieceStorage),
- _now(now),
_requestTimeout(requestTimeout) {}
bool operator()(const RequestSlot& slot)
{
- if(slot.isTimeout(_now, _requestTimeout)) {
+ if(slot.isTimeout(_requestTimeout)) {
return true;
} else {
if(slot.getPiece()->hasBlock(slot.getBlockIndex())) {
@@ -331,20 +325,15 @@ public:
void DefaultBtMessageDispatcher::checkRequestSlotAndDoNecessaryThing()
{
- struct timeval now;
- gettimeofday(&now, 0);
-
std::for_each(requestSlots.begin(), requestSlots.end(),
ProcessStaleRequestSlot(cuid,
peer,
_pieceStorage,
this,
messageFactory,
- now,
requestTimeout));
requestSlots.erase(std::remove_if(requestSlots.begin(), requestSlots.end(),
FindStaleRequestSlot(_pieceStorage,
- now,
requestTimeout)),
requestSlots.end());
}