diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-03-12 15:54:43 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-03-12 15:54:43 +0000 |
| commit | 15582ed8cdbfd58d86fc1d92e37c87d2664450cd (patch) | |
| tree | 405e75ec596ae46ac889ae9b0ac8f611c538d0b1 /src/BtAllowedFastMessage.cc | |
| parent | 371ef954d5390ada5e9debd9652e982b1b225be7 (diff) | |
2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Refactored BtMessage subclasses. BtCancelMessage,
BtRequestMessage and BtRejectMessage are derived from
RangeBtMessage class.
BtAllowedFastMessage, BtHaveMessage and BtSuggestPieceMessage
are derived from IndexBtMessage class. BtChokeMessage,
BtHaveAllMessage, BtHaveNoneMessage, BtInterestedMessage,
BtNotInterestedMessage and BtUnchokeMessage are derived from
ZeroBtMessage class.
* src/AbstractBtMessage.cc
* src/AbstractBtMessage.h
* src/BtAllowedFastMessage.cc
* src/BtAllowedFastMessage.h
* src/BtAllowedFastMessageValidator.h: Removed
* src/BtBitfieldMessage.cc
* src/BtBitfieldMessage.h
* src/BtCancelMessage.cc
* src/BtCancelMessage.h
* src/BtCancelMessageValidator.h: Removed
* src/BtChokeMessage.cc
* src/BtChokeMessage.h
* src/BtExtendedMessage.cc
* src/BtExtendedMessage.h
* src/BtHandshakeMessage.cc
* src/BtHandshakeMessage.h
* src/BtHaveAllMessage.cc
* src/BtHaveAllMessage.h
* src/BtHaveMessage.cc
* src/BtHaveMessage.h
* src/BtHaveMessageValidator.h: Removed
* src/BtHaveNoneMessage.cc
* src/BtHaveNoneMessage.h
* src/BtInterestedMessage.cc
* src/BtInterestedMessage.h
* src/BtKeepAliveMessage.cc
* src/BtKeepAliveMessage.h
* src/BtNotInterestedMessage.cc
* src/BtNotInterestedMessage.h
* src/BtPieceMessage.cc
* src/BtPieceMessage.h
* src/BtPortMessage.cc
* src/BtPortMessage.h
* src/BtRejectMessage.cc
* src/BtRejectMessage.h
* src/BtRejectMessageValidator.h: Removed
* src/BtRequestMessage.cc
* src/BtRequestMessage.h
* src/BtRequestMessageValidator.h: Removed
* src/BtSuggestPieceMessage.cc
* src/BtSuggestPieceMessage.h
* src/BtSuggestPieceMessageValidator.h: Removed
* src/BtUnchokeMessage.cc
* src/BtUnchokeMessage.h
* src/DefaultBtMessageFactory.cc
* src/IndexBtMessage.cc
* src/IndexBtMessage.h
* src/IndexBtMessageValidator.h
* src/Makefile.am
* src/PeerMessageUtil.cc
* src/PeerMessageUtil.h
* src/RangeBtMessage.cc
* src/RangeBtMessage.h
* src/RangeBtMessageValidator.h
* src/SimpleBtMessage.cc
* src/SimpleBtMessage.h
* src/ZeroBtMessage.cc
* src/ZeroBtMessage.h
* test/BtRequestMessageTest.cc
Diffstat (limited to 'src/BtAllowedFastMessage.cc')
| -rw-r--r-- | src/BtAllowedFastMessage.cc | 49 |
1 files changed, 8 insertions, 41 deletions
diff --git a/src/BtAllowedFastMessage.cc b/src/BtAllowedFastMessage.cc index b9d557fe..a3e81350 100644 --- a/src/BtAllowedFastMessage.cc +++ b/src/BtAllowedFastMessage.cc @@ -33,28 +33,18 @@ */ /* copyright --> */ #include "BtAllowedFastMessage.h" -#include "PeerMessageUtil.h" -#include "Util.h" #include "DlAbortEx.h" -#include "message.h" #include "Peer.h" #include "StringFormat.h" namespace aria2 { -BtAllowedFastMessageHandle BtAllowedFastMessage::create(const unsigned char* data, size_t dataLength) { - if(dataLength != 5) { - throw DlAbortEx - (StringFormat(EX_INVALID_PAYLOAD_SIZE, "allowed fast", dataLength, 5).str()); - } - uint8_t id = PeerMessageUtil::getId(data); - if(id != ID) { - throw DlAbortEx - (StringFormat(EX_INVALID_BT_MESSAGE_ID, id, "allowed fast", ID).str()); - } - BtAllowedFastMessageHandle message(new BtAllowedFastMessage()); - message->setIndex(PeerMessageUtil::getIntParam(data, 1)); - return message; +const std::string BtAllowedFastMessage::NAME("allowed fast"); + +SharedHandle<BtAllowedFastMessage> BtAllowedFastMessage::create +(const unsigned char* data, size_t dataLength) +{ + return IndexBtMessage::create<BtAllowedFastMessage>(data, dataLength); } void BtAllowedFastMessage::doReceivedAction() { @@ -63,34 +53,11 @@ void BtAllowedFastMessage::doReceivedAction() { (StringFormat("%s received while fast extension is disabled", toString().c_str()).str()); } - peer->addPeerAllowedIndex(index); -} - -const unsigned char* BtAllowedFastMessage::getMessage() { - if(!msg) { - /** - * len --- 5, 4bytes - * id --- 17, 1byte - * piece index --- index, 4bytes - * total: 9bytes - */ - msg = new unsigned char[MESSAGE_LENGTH]; - PeerMessageUtil::createPeerMessageString(msg, MESSAGE_LENGTH, 5, ID); - PeerMessageUtil::setIntParam(&msg[5], index); - } - return msg; -} - -size_t BtAllowedFastMessage::getMessageLength() { - return MESSAGE_LENGTH; + peer->addPeerAllowedIndex(getIndex()); } void BtAllowedFastMessage::onSendComplete() { - peer->addAmAllowedIndex(index); -} - -std::string BtAllowedFastMessage::toString() const { - return "allowed fast index="+Util::itos(index); + peer->addAmAllowedIndex(getIndex()); } } // namespace aria2 |
