summaryrefslogtreecommitdiff
path: root/src/BtAllowedFastMessage.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-03-12 15:54:43 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-03-12 15:54:43 +0000
commit15582ed8cdbfd58d86fc1d92e37c87d2664450cd (patch)
tree405e75ec596ae46ac889ae9b0ac8f611c538d0b1 /src/BtAllowedFastMessage.cc
parent371ef954d5390ada5e9debd9652e982b1b225be7 (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.cc49
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