/* */ #include "SimpleBtMessage.h" #include "message.h" #include "Peer.h" #include "PeerConnection.h" #include "Logger.h" #include "util.h" namespace aria2 { SimpleBtMessage::SimpleBtMessage(uint8_t id, const std::string& name): AbstractBtMessage(id, name) {} SimpleBtMessage::~SimpleBtMessage() {} void SimpleBtMessage::send() { if(invalidate) { return; } if(!sendPredicate() && !sendingInProgress) { return; } if(!sendingInProgress) { if(logger->info()) { logger->info(MSG_SEND_PEER_MESSAGE, util::itos(cuid).c_str(), peer->ipaddr.c_str(), peer->port, toString().c_str()); } unsigned char* msg = createMessage(); size_t msgLength = getMessageLength(); if(logger->debug()) { logger->debug("msglength = %lu bytes", static_cast(msgLength)); } peerConnection->pushBytes(msg, msgLength); } peerConnection->sendPendingData(); sendingInProgress = !peerConnection->sendBufferIsEmpty(); if(!sendingInProgress) { onSendComplete(); } } } // namespace aria2