package core.framework.impl.web.response;
import core.framework.api.web.ResponseImpl;
import core.framework.impl.log.LogParam;
import core.framework.impl.web.request.RequestImpl;
import io.undertow.io.Sender;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.nio.ByteBuffer;
/**
* @author rainbow.cai
*/
class ByteArrayBodyResponseHandler implements BodyHandler {
private final Logger logger = LoggerFactory.getLogger(ByteArrayBodyResponseHandler.class);
@Override
public void handle(ResponseImpl response, Sender sender, RequestImpl request) {
ByteArrayBody body = (ByteArrayBody) response.body;
if (body.contentType != null) {
body.contentType.charset()
.ifPresent(charset -> logger.debug("[response] body={}", LogParam.of(body.bytes, charset)));
}
sender.send(ByteBuffer.wrap(body.bytes));
}
}