summaryrefslogtreecommitdiff
path: root/src/SimpleBtMessage.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-01-11 14:20:34 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-01-11 16:50:04 +0900
commit8ba0d58ee1a9fc2249839339549293ddc183fe66 (patch)
tree3fe0018527530e93fb01cf0ea76641193b75be5d /src/SimpleBtMessage.cc
parent74e570de379752508d7f363dd0d1a0c4ae8b7319 (diff)
Vectorized write for SocketBuffer to avoid small packet
Diffstat (limited to 'src/SimpleBtMessage.cc')
-rw-r--r--src/SimpleBtMessage.cc32
1 files changed, 11 insertions, 21 deletions
diff --git a/src/SimpleBtMessage.cc b/src/SimpleBtMessage.cc
index 565eab29..c7aa670a 100644
--- a/src/SimpleBtMessage.cc
+++ b/src/SimpleBtMessage.cc
@@ -48,29 +48,19 @@ SimpleBtMessage::SimpleBtMessage(uint8_t id, const char* name)
{}
void SimpleBtMessage::send() {
- if(isInvalidate()) {
+ if(isInvalidate() || !sendPredicate()) {
return;
}
- if(!sendPredicate() && !isSendingInProgress()) {
- return;
- }
- if(!isSendingInProgress()) {
- A2_LOG_INFO(fmt(MSG_SEND_PEER_MESSAGE,
- getCuid(),
- getPeer()->getIPAddress().c_str(),
- getPeer()->getPort(),
- toString().c_str()));
- unsigned char* msg = createMessage();
- size_t msgLength = getMessageLength();
- A2_LOG_DEBUG(fmt("msglength = %lu bytes",
- static_cast<unsigned long>(msgLength)));
- getPeerConnection()->pushBytes(msg, msgLength);
- }
- getPeerConnection()->sendPendingData();
- setSendingInProgress(!getPeerConnection()->sendBufferIsEmpty());
- if(!isSendingInProgress()) {
- onSendComplete();
- }
+ A2_LOG_INFO(fmt(MSG_SEND_PEER_MESSAGE,
+ getCuid(),
+ getPeer()->getIPAddress().c_str(),
+ getPeer()->getPort(),
+ toString().c_str()));
+ unsigned char* msg = createMessage();
+ size_t msgLength = getMessageLength();
+ A2_LOG_DEBUG(fmt("msglength = %lu bytes",
+ static_cast<unsigned long>(msgLength)));
+ getPeerConnection()->pushBytes(msg, msgLength, getProgressUpdate());
}
} // namespace aria2