|  | @@ -60,20 +60,21 @@ namespace aria2 {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  DefaultBtMessageDispatcher::DefaultBtMessageDispatcher():
 | 
	
		
			
				|  |  |    cuid(0),
 | 
	
		
			
				|  |  | -  requestTimeout(0),
 | 
	
		
			
				|  |  | -  logger(LogFactory::getInstance()) {}
 | 
	
		
			
				|  |  | +  _requestTimeout(0),
 | 
	
		
			
				|  |  | +  _logger(LogFactory::getInstance()) {}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  DefaultBtMessageDispatcher::~DefaultBtMessageDispatcher()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -  if(logger->debug()) {
 | 
	
		
			
				|  |  | -    logger->debug("DefaultBtMessageDispatcher::deleted");
 | 
	
		
			
				|  |  | +  if(_logger->debug()) {
 | 
	
		
			
				|  |  | +    _logger->debug("DefaultBtMessageDispatcher::deleted");
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -void DefaultBtMessageDispatcher::addMessageToQueue(const BtMessageHandle& btMessage)
 | 
	
		
			
				|  |  | +void DefaultBtMessageDispatcher::addMessageToQueue
 | 
	
		
			
				|  |  | +(const BtMessageHandle& btMessage)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |    btMessage->onQueued();
 | 
	
		
			
				|  |  | -  messageQueue.push_back(btMessage);
 | 
	
		
			
				|  |  | +  _messageQueue.push_back(btMessage);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void DefaultBtMessageDispatcher::addMessageToQueue
 | 
	
	
		
			
				|  | @@ -87,9 +88,9 @@ void DefaultBtMessageDispatcher::addMessageToQueue
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void DefaultBtMessageDispatcher::sendMessages() {
 | 
	
		
			
				|  |  |    std::vector<SharedHandle<BtMessage> > tempQueue;
 | 
	
		
			
				|  |  | -  while(!messageQueue.empty()) {
 | 
	
		
			
				|  |  | -    BtMessageHandle msg = messageQueue.front();
 | 
	
		
			
				|  |  | -    messageQueue.pop_front();
 | 
	
		
			
				|  |  | +  while(!_messageQueue.empty()) {
 | 
	
		
			
				|  |  | +    BtMessageHandle msg = _messageQueue.front();
 | 
	
		
			
				|  |  | +    _messageQueue.pop_front();
 | 
	
		
			
				|  |  |      if(msg->isUploading() && !msg->isSendingInProgress()) {
 | 
	
		
			
				|  |  |        if(_requestGroupMan->doesOverallUploadSpeedExceed() ||
 | 
	
		
			
				|  |  |           _downloadContext->getOwnerRequestGroup()->doesUploadSpeedExceed()) {
 | 
	
	
		
			
				|  | @@ -99,33 +100,34 @@ void DefaultBtMessageDispatcher::sendMessages() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      msg->send();
 | 
	
		
			
				|  |  |      if(msg->isUploading()) {
 | 
	
		
			
				|  |  | -      _peerStorage->updateTransferStatFor(peer);
 | 
	
		
			
				|  |  | +      _peerStorage->updateTransferStatFor(_peer);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      if(msg->isSendingInProgress()) {
 | 
	
		
			
				|  |  | -      messageQueue.push_front(msg);
 | 
	
		
			
				|  |  | +      _messageQueue.push_front(msg);
 | 
	
		
			
				|  |  |        break;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    if(!tempQueue.empty()) {
 | 
	
		
			
				|  |  |      // Insert pending message to the front, so that message is likely sent in
 | 
	
		
			
				|  |  |      // the same order as it is queued.
 | 
	
		
			
				|  |  | -    if(!messageQueue.empty() && messageQueue.front()->isSendingInProgress()) {
 | 
	
		
			
				|  |  | -      messageQueue.insert(messageQueue.begin()+1,
 | 
	
		
			
				|  |  | -                          tempQueue.begin(), tempQueue.end());
 | 
	
		
			
				|  |  | +    if(!_messageQueue.empty() && _messageQueue.front()->isSendingInProgress()) {
 | 
	
		
			
				|  |  | +      _messageQueue.insert(_messageQueue.begin()+1,
 | 
	
		
			
				|  |  | +                           tempQueue.begin(), tempQueue.end());
 | 
	
		
			
				|  |  |      } else {
 | 
	
		
			
				|  |  | -      messageQueue.insert(messageQueue.begin(),
 | 
	
		
			
				|  |  | -                          tempQueue.begin(), tempQueue.end());
 | 
	
		
			
				|  |  | +      _messageQueue.insert(_messageQueue.begin(),
 | 
	
		
			
				|  |  | +                           tempQueue.begin(), tempQueue.end());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // Cancel sending piece message to peer.
 | 
	
		
			
				|  |  | -void DefaultBtMessageDispatcher::doCancelSendingPieceAction(size_t index, uint32_t begin, size_t length)
 | 
	
		
			
				|  |  | +void DefaultBtMessageDispatcher::doCancelSendingPieceAction
 | 
	
		
			
				|  |  | +(size_t index, uint32_t begin, size_t length)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |    BtCancelSendingPieceEvent event(index, begin, length);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    std::vector<SharedHandle<BtMessage> > tempQueue
 | 
	
		
			
				|  |  | -    (messageQueue.begin(), messageQueue.end());
 | 
	
		
			
				|  |  | +    (_messageQueue.begin(), _messageQueue.end());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    forEachMemFunSH(tempQueue.begin(), tempQueue.end(),
 | 
	
		
			
				|  |  |                    &BtMessage::onCancelSendingPieceEvent, event);
 | 
	
	
		
			
				|  | @@ -167,19 +169,19 @@ void DefaultBtMessageDispatcher::doAbortOutstandingRequestAction
 | 
	
		
			
				|  |  |  (const SharedHandle<Piece>& piece) {
 | 
	
		
			
				|  |  |    RequestSlot rs(piece->getIndex(), 0, 0, 0);
 | 
	
		
			
				|  |  |    std::deque<RequestSlot>::iterator first =
 | 
	
		
			
				|  |  | -    std::lower_bound(requestSlots.begin(), requestSlots.end(), rs);
 | 
	
		
			
				|  |  | +    std::lower_bound(_requestSlots.begin(), _requestSlots.end(), rs);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    rs.setIndex(piece->getIndex()+1);
 | 
	
		
			
				|  |  |    std::deque<RequestSlot>::iterator last =
 | 
	
		
			
				|  |  | -    std::lower_bound(requestSlots.begin(), requestSlots.end(), rs);
 | 
	
		
			
				|  |  | +    std::lower_bound(_requestSlots.begin(), _requestSlots.end(), rs);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    std::for_each(first, last, AbortOutstandingRequest(piece, cuid));
 | 
	
		
			
				|  |  | -  requestSlots.erase(first, last);
 | 
	
		
			
				|  |  | +  _requestSlots.erase(first, last);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    BtAbortOutstandingRequestEvent event(piece);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    std::vector<SharedHandle<BtMessage> > tempQueue
 | 
	
		
			
				|  |  | -    (messageQueue.begin(), messageQueue.end());
 | 
	
		
			
				|  |  | +    (_messageQueue.begin(), _messageQueue.end());
 | 
	
		
			
				|  |  |    forEachMemFunSH(tempQueue.begin(), tempQueue.end(),
 | 
	
		
			
				|  |  |                    &BtMessage::onAbortOutstandingRequestEvent, event);
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -232,12 +234,12 @@ public:
 | 
	
		
			
				|  |  |  // localhost received choke message from the peer.
 | 
	
		
			
				|  |  |  void DefaultBtMessageDispatcher::doChokedAction()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -  std::for_each(requestSlots.begin(), requestSlots.end(),
 | 
	
		
			
				|  |  | -                ProcessChokedRequestSlot(cuid, peer, _pieceStorage));
 | 
	
		
			
				|  |  | +  std::for_each(_requestSlots.begin(), _requestSlots.end(),
 | 
	
		
			
				|  |  | +                ProcessChokedRequestSlot(cuid, _peer, _pieceStorage));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  requestSlots.erase(std::remove_if(requestSlots.begin(), requestSlots.end(),
 | 
	
		
			
				|  |  | -                                    FindChokedRequestSlot(peer)),
 | 
	
		
			
				|  |  | -                     requestSlots.end());
 | 
	
		
			
				|  |  | +  _requestSlots.erase(std::remove_if(_requestSlots.begin(), _requestSlots.end(),
 | 
	
		
			
				|  |  | +                                     FindChokedRequestSlot(_peer)),
 | 
	
		
			
				|  |  | +                      _requestSlots.end());
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // localhost dispatched choke message to the peer.
 | 
	
	
		
			
				|  | @@ -246,7 +248,7 @@ void DefaultBtMessageDispatcher::doChokingAction()
 | 
	
		
			
				|  |  |    BtChokingEvent event;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    std::vector<SharedHandle<BtMessage> > tempQueue
 | 
	
		
			
				|  |  | -    (messageQueue.begin(), messageQueue.end());
 | 
	
		
			
				|  |  | +    (_messageQueue.begin(), _messageQueue.end());
 | 
	
		
			
				|  |  |    forEachMemFunSH(tempQueue.begin(), tempQueue.end(),
 | 
	
		
			
				|  |  |                    &BtMessage::onChokingEvent, event);
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -326,25 +328,25 @@ public:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void DefaultBtMessageDispatcher::checkRequestSlotAndDoNecessaryThing()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -  std::for_each(requestSlots.begin(), requestSlots.end(),
 | 
	
		
			
				|  |  | +  std::for_each(_requestSlots.begin(), _requestSlots.end(),
 | 
	
		
			
				|  |  |                  ProcessStaleRequestSlot(cuid,
 | 
	
		
			
				|  |  | -                                        peer,
 | 
	
		
			
				|  |  | +                                        _peer,
 | 
	
		
			
				|  |  |                                          _pieceStorage,
 | 
	
		
			
				|  |  |                                          this,
 | 
	
		
			
				|  |  | -                                        messageFactory,
 | 
	
		
			
				|  |  | -                                        requestTimeout));
 | 
	
		
			
				|  |  | -  requestSlots.erase(std::remove_if(requestSlots.begin(), requestSlots.end(),
 | 
	
		
			
				|  |  | -                                    FindStaleRequestSlot(_pieceStorage,
 | 
	
		
			
				|  |  | -                                                         requestTimeout)),
 | 
	
		
			
				|  |  | -                     requestSlots.end());
 | 
	
		
			
				|  |  | +                                        _messageFactory,
 | 
	
		
			
				|  |  | +                                        _requestTimeout));
 | 
	
		
			
				|  |  | +  _requestSlots.erase(std::remove_if(_requestSlots.begin(), _requestSlots.end(),
 | 
	
		
			
				|  |  | +                                     FindStaleRequestSlot(_pieceStorage,
 | 
	
		
			
				|  |  | +                                                          _requestTimeout)),
 | 
	
		
			
				|  |  | +                      _requestSlots.end());
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  bool DefaultBtMessageDispatcher::isSendingInProgress()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -  if(messageQueue.size() > 0) {
 | 
	
		
			
				|  |  | -    return messageQueue.front()->isSendingInProgress();
 | 
	
		
			
				|  |  | -  } else {
 | 
	
		
			
				|  |  | +  if(_messageQueue.empty()) {
 | 
	
		
			
				|  |  |      return false;
 | 
	
		
			
				|  |  | +  } else {
 | 
	
		
			
				|  |  | +    return _messageQueue.front()->isSendingInProgress();
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -360,23 +362,26 @@ public:
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool DefaultBtMessageDispatcher::isOutstandingRequest(size_t index, size_t blockIndex) {
 | 
	
		
			
				|  |  | +bool DefaultBtMessageDispatcher::isOutstandingRequest
 | 
	
		
			
				|  |  | +(size_t index, size_t blockIndex) {
 | 
	
		
			
				|  |  |    RequestSlot rs(index, 0, 0, blockIndex);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    std::deque<RequestSlot>::iterator i =
 | 
	
		
			
				|  |  | -    std::lower_bound(requestSlots.begin(), requestSlots.end(), rs, BlockIndexLess());
 | 
	
		
			
				|  |  | -  return i != requestSlots.end() &&
 | 
	
		
			
				|  |  | +    std::lower_bound(_requestSlots.begin(), _requestSlots.end(),
 | 
	
		
			
				|  |  | +                     rs, BlockIndexLess());
 | 
	
		
			
				|  |  | +  return i != _requestSlots.end() &&
 | 
	
		
			
				|  |  |      (*i).getIndex() == index && (*i).getBlockIndex() == blockIndex;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  RequestSlot
 | 
	
		
			
				|  |  | -DefaultBtMessageDispatcher::getOutstandingRequest(size_t index, uint32_t begin, size_t length)
 | 
	
		
			
				|  |  | +DefaultBtMessageDispatcher::getOutstandingRequest
 | 
	
		
			
				|  |  | +(size_t index, uint32_t begin, size_t length)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |    RequestSlot ret;
 | 
	
		
			
				|  |  |    RequestSlot rs(index, begin, length, 0);
 | 
	
		
			
				|  |  |    std::deque<RequestSlot>::iterator i =
 | 
	
		
			
				|  |  | -    std::lower_bound(requestSlots.begin(), requestSlots.end(), rs);
 | 
	
		
			
				|  |  | -  if(i != requestSlots.end() && (*i) == rs) {
 | 
	
		
			
				|  |  | +    std::lower_bound(_requestSlots.begin(), _requestSlots.end(), rs);
 | 
	
		
			
				|  |  | +  if(i != _requestSlots.end() && (*i) == rs) {
 | 
	
		
			
				|  |  |      ret = *i;
 | 
	
		
			
				|  |  |    } else {
 | 
	
		
			
				|  |  |      ret = RequestSlot::nullSlot;
 | 
	
	
		
			
				|  | @@ -384,34 +389,36 @@ DefaultBtMessageDispatcher::getOutstandingRequest(size_t index, uint32_t begin,
 | 
	
		
			
				|  |  |    return ret;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -void DefaultBtMessageDispatcher::removeOutstandingRequest(const RequestSlot& slot)
 | 
	
		
			
				|  |  | +void DefaultBtMessageDispatcher::removeOutstandingRequest
 | 
	
		
			
				|  |  | +(const RequestSlot& slot)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |    std::deque<RequestSlot>::iterator i =
 | 
	
		
			
				|  |  | -    std::lower_bound(requestSlots.begin(), requestSlots.end(), slot);
 | 
	
		
			
				|  |  | -  if(i != requestSlots.end() && (*i) == slot) {
 | 
	
		
			
				|  |  | +    std::lower_bound(_requestSlots.begin(), _requestSlots.end(), slot);
 | 
	
		
			
				|  |  | +  if(i != _requestSlots.end() && (*i) == slot) {
 | 
	
		
			
				|  |  |      AbortOutstandingRequest(slot.getPiece(), cuid)(*i);
 | 
	
		
			
				|  |  | -    requestSlots.erase(i);
 | 
	
		
			
				|  |  | +    _requestSlots.erase(i);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -void DefaultBtMessageDispatcher::addOutstandingRequest(const RequestSlot& slot)
 | 
	
		
			
				|  |  | +void DefaultBtMessageDispatcher::addOutstandingRequest
 | 
	
		
			
				|  |  | +(const RequestSlot& slot)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |    std::deque<RequestSlot>::iterator i =
 | 
	
		
			
				|  |  | -    std::lower_bound(requestSlots.begin(), requestSlots.end(), slot);
 | 
	
		
			
				|  |  | -  if(i == requestSlots.end() || (*i) != slot) {
 | 
	
		
			
				|  |  | -    requestSlots.insert(i, slot);
 | 
	
		
			
				|  |  | +    std::lower_bound(_requestSlots.begin(), _requestSlots.end(), slot);
 | 
	
		
			
				|  |  | +  if(i == _requestSlots.end() || (*i) != slot) {
 | 
	
		
			
				|  |  | +    _requestSlots.insert(i, slot);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  size_t DefaultBtMessageDispatcher::countOutstandingUpload()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -  return std::count_if(messageQueue.begin(), messageQueue.end(),
 | 
	
		
			
				|  |  | +  return std::count_if(_messageQueue.begin(), _messageQueue.end(),
 | 
	
		
			
				|  |  |                         mem_fun_sh(&BtMessage::isUploading));
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void DefaultBtMessageDispatcher::setPeer(const SharedHandle<Peer>& peer)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -  this->peer = peer;
 | 
	
		
			
				|  |  | +  _peer = peer;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void DefaultBtMessageDispatcher::setDownloadContext
 | 
	
	
		
			
				|  | @@ -432,9 +439,10 @@ void DefaultBtMessageDispatcher::setPeerStorage
 | 
	
		
			
				|  |  |    _peerStorage = peerStorage;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -void DefaultBtMessageDispatcher::setBtMessageFactory(const WeakHandle<BtMessageFactory>& factory)
 | 
	
		
			
				|  |  | +void DefaultBtMessageDispatcher::setBtMessageFactory
 | 
	
		
			
				|  |  | +(const WeakHandle<BtMessageFactory>& factory)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -  this->messageFactory = factory;
 | 
	
		
			
				|  |  | +  _messageFactory = factory;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void DefaultBtMessageDispatcher::setRequestGroupMan
 |