2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Renamed member variables
	* src/DefaultBtMessageDispatcher.cc
	* src/DefaultBtMessageDispatcher.h
pull/1/head
Tatsuhiro Tsujikawa 2010-06-12 08:16:49 +00:00
parent d8d141e5f7
commit ee08678566
3 changed files with 82 additions and 68 deletions

View File

@ -1,3 +1,9 @@
2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Renamed member variables
* src/DefaultBtMessageDispatcher.cc
* src/DefaultBtMessageDispatcher.h
2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> 2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Renamed member variables. Removed member variable peerConnection. Renamed member variables. Removed member variable peerConnection.

View File

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

View File

@ -57,16 +57,16 @@ class RequestGroupMan;
class DefaultBtMessageDispatcher : public BtMessageDispatcher { class DefaultBtMessageDispatcher : public BtMessageDispatcher {
private: private:
cuid_t cuid; cuid_t cuid;
std::deque<SharedHandle<BtMessage> > messageQueue; std::deque<SharedHandle<BtMessage> > _messageQueue;
std::deque<RequestSlot> requestSlots; std::deque<RequestSlot> _requestSlots;
SharedHandle<DownloadContext> _downloadContext; SharedHandle<DownloadContext> _downloadContext;
SharedHandle<PeerStorage> _peerStorage; SharedHandle<PeerStorage> _peerStorage;
SharedHandle<PieceStorage> _pieceStorage; SharedHandle<PieceStorage> _pieceStorage;
WeakHandle<BtMessageFactory> messageFactory; WeakHandle<BtMessageFactory> _messageFactory;
SharedHandle<Peer> peer; SharedHandle<Peer> _peer;
WeakHandle<RequestGroupMan> _requestGroupMan; WeakHandle<RequestGroupMan> _requestGroupMan;
time_t requestTimeout; time_t _requestTimeout;
Logger* logger; Logger* _logger;
public: public:
DefaultBtMessageDispatcher(); DefaultBtMessageDispatcher();
@ -94,12 +94,12 @@ public:
virtual bool isSendingInProgress(); virtual bool isSendingInProgress();
virtual size_t countMessageInQueue() { virtual size_t countMessageInQueue() {
return messageQueue.size(); return _messageQueue.size();
} }
virtual size_t countOutstandingRequest() virtual size_t countOutstandingRequest()
{ {
return requestSlots.size(); return _requestSlots.size();
} }
virtual bool isOutstandingRequest(size_t index, size_t blockIndex); virtual bool isOutstandingRequest(size_t index, size_t blockIndex);
@ -114,12 +114,12 @@ public:
const std::deque<SharedHandle<BtMessage> >& getMessageQueue() const const std::deque<SharedHandle<BtMessage> >& getMessageQueue() const
{ {
return messageQueue; return _messageQueue;
} }
const std::deque<RequestSlot>& getRequestSlots() const const std::deque<RequestSlot>& getRequestSlots() const
{ {
return requestSlots; return _requestSlots;
} }
void setPeer(const SharedHandle<Peer>& peer); void setPeer(const SharedHandle<Peer>& peer);
@ -140,7 +140,7 @@ public:
} }
void setRequestTimeout(time_t requestTimeout) { void setRequestTimeout(time_t requestTimeout) {
this->requestTimeout = requestTimeout; _requestTimeout = requestTimeout;
} }
}; };