/* */ #include "HaveNoneMessage.h" #include "DlAbortEx.h" #include "PeerInteraction.h" #include "PeerMessageUtil.h" HaveNoneMessage::HaveNoneMessage() {} HaveNoneMessage::~HaveNoneMessage() {} HaveNoneMessage* HaveNoneMessage::create(const char* data, int dataLength) { if(dataLength != 1) { throw new DlAbortEx("invalid payload size for %s, size = %d. It should be %d", "have none", dataLength, 1); } int id = PeerMessageUtil::getId(data); if(id != ID) { throw new DlAbortEx("invalid ID=%d for %s. It should be %d.", id, "have none", ID); } HaveNoneMessage* haveNoneMessage = new HaveNoneMessage(); return haveNoneMessage; } void HaveNoneMessage::receivedAction() { if(!peer->isFastExtensionEnabled()) { throw new DlAbortEx("%s received while fast extension is disabled", toString().c_str()); } } const char* HaveNoneMessage::getMessage() { if(!inProgress) { /** * len --- 1, 4bytes * id --- 15, 1byte * total: 5bytes */ PeerMessageUtil::createPeerMessageString(msg, sizeof(msg), 1, ID); } return msg; } int HaveNoneMessage::getMessageLength() { return sizeof(msg); } void HaveNoneMessage::check() const {} string HaveNoneMessage::toString() const { return "have none"; }