void KaaTcpResponseProcessor::processResponseBuffer(const char *buf, std::uint32_t size) { parser_.parseBuffer(buf, size); const auto& messages_ = parser_.releaseMessages(); for (auto it = messages_.begin(); it != messages_.end(); ++it) { switch (it->first) { case KaaTcpMessageType::MESSAGE_CONNACK: KAA_LOG_DEBUG("KaaTcp: CONNACK message received"); if (onConnack_) { onConnack_(ConnackMessage(it->second.first.get(), it->second.second)); } break; case KaaTcpMessageType::MESSAGE_KAASYNC: KAA_LOG_DEBUG("KaaTcp: KAASYNC message received"); if (onKaaSyncResponse_) { onKaaSyncResponse_(KaaSyncResponse(it->second.first.get(), it->second.second)); } break; case KaaTcpMessageType::MESSAGE_PINGRESP: KAA_LOG_DEBUG("KaaTcp: PINGRESP message received"); if (onPingResp_) { onPingResp_(); } break; case KaaTcpMessageType::MESSAGE_DISCONNECT: KAA_LOG_DEBUG("KaaTcp: DISCONNECT message received"); if (onDisconnect_) { onDisconnect_(DisconnectMessage(it->second.first.get(), it->second.second)); } break; default: KAA_LOG_ERROR(boost::format("KaaTcp: unexpected message type %1%") % (int) it->first); throw KaaException(boost::format("KaaTcp: unexpected message type: %1%") % (int) it->first); } } }
boost::system::error_code DefaultOperationTcpChannel::sendDisconnect() { KAA_LOG_DEBUG(boost::format("Channel [%1%] sending DISCONNECT") % getId()); return sendData(DisconnectMessage(DisconnectReason::NONE)); }