summaryrefslogtreecommitdiff
path: root/src/BtHaveNoneMessage.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/BtHaveNoneMessage.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/BtHaveNoneMessage.cc')
-rw-r--r--src/BtHaveNoneMessage.cc45
1 files changed, 8 insertions, 37 deletions
diff --git a/src/BtHaveNoneMessage.cc b/src/BtHaveNoneMessage.cc
index 3981a20a..1ff27e06 100644
--- a/src/BtHaveNoneMessage.cc
+++ b/src/BtHaveNoneMessage.cc
@@ -34,28 +34,21 @@
/* copyright --> */
#include "BtHaveNoneMessage.h"
#include "DlAbortEx.h"
-#include "PeerMessageUtil.h"
-#include "message.h"
#include "Peer.h"
#include "StringFormat.h"
namespace aria2 {
-BtHaveNoneMessageHandle BtHaveNoneMessage::create(const unsigned char* data, size_t dataLength) {
- if(dataLength != 1) {
- throw DlAbortEx
- (StringFormat(EX_INVALID_PAYLOAD_SIZE, "have none", dataLength, 1).str());
- }
- uint8_t id = PeerMessageUtil::getId(data);
- if(id != ID) {
- throw DlAbortEx
- (StringFormat(EX_INVALID_BT_MESSAGE_ID, id, "have none", ID).str());
- }
- BtHaveNoneMessageHandle message(new BtHaveNoneMessage());
- return message;
+const std::string BtHaveNoneMessage::NAME("have none");
+
+SharedHandle<BtHaveNoneMessage> BtHaveNoneMessage::create
+(const unsigned char* data, size_t dataLength)
+{
+ return ZeroBtMessage::create<BtHaveNoneMessage>(data, dataLength);
}
-void BtHaveNoneMessage::doReceivedAction() {
+void BtHaveNoneMessage::doReceivedAction()
+{
if(!peer->isFastExtensionEnabled()) {
throw DlAbortEx
(StringFormat("%s received while fast extension is disabled",
@@ -63,26 +56,4 @@ void BtHaveNoneMessage::doReceivedAction() {
}
}
-const unsigned char* BtHaveNoneMessage::getMessage() {
- if(!msg) {
- /**
- * len --- 1, 4bytes
- * id --- 15, 1byte
- * total: 5bytes
- */
- msg = new unsigned char[MESSAGE_LENGTH];
- PeerMessageUtil::createPeerMessageString(msg, MESSAGE_LENGTH, 1, ID);
- }
- return msg;
-}
-
-size_t BtHaveNoneMessage::getMessageLength() {
- return MESSAGE_LENGTH;
-}
-
-std::string BtHaveNoneMessage::toString() const {
- static const std::string HAVE_NONE("have none");
- return HAVE_NONE;
-}
-
} // namespace aria2