/* */ #include "SimplePeerMessage.h" #include "message.h" #include "PeerInteraction.h" SimplePeerMessage::SimplePeerMessage():leftDataLength(0) {} SimplePeerMessage::~SimplePeerMessage() {} void SimplePeerMessage::send() { if(invalidate) { return; } if(sendPredicate() || inProgress) { const char* msg = getMessage(); int msgLength = getMessageLength(); if(!inProgress) { logger->info(MSG_SEND_PEER_MESSAGE, cuid, peer->ipaddr.c_str(), peer->port, toString().c_str()); leftDataLength = getMessageLength(); } inProgress = false; int writtenLength = peerInteraction->getPeerConnection()->sendMessage(msg+msgLength-leftDataLength, leftDataLength); if(writtenLength == leftDataLength) { onSendComplete(); } else { leftDataLength -= writtenLength; inProgress = true; } } }