void ReplayTransport::sendImpl(const void *data, int size, int code, bool chunked, bool eom) { m_code = code; m_response = "HTTP/1.1 "; m_response += folly::to<std::string>(code); m_response += " "; m_response += HttpProtocol::GetReasonString(m_code); m_response += "\r\n"; for (HeaderMap::const_iterator iter = m_responseHeaders.begin(); iter != m_responseHeaders.end(); ++iter) { for (unsigned int i = 0; i < iter->second.size(); i++) { m_response += iter->first; m_response += ": "; m_response += iter->second[i]; m_response += "\r\n"; } } m_response += "\r\n"; m_response.append((const char *)data, size); m_response += "\r\n"; if (eom) { onSendEndImpl(); } }
void Transport::onSendEnd() { if (m_compressor && m_chunkedEncoding) { bool compressed = false; String response = prepareResponse("", 0, compressed, true); sendImpl(response.data(), response.size(), m_responseCode, true); } onSendEndImpl(); }