/**
* Copyright 2011-2014 the original author or authors.
*/
package com.jetdrone.vertx.yoke.middleware;
import com.jetdrone.vertx.yoke.Middleware;
import org.jetbrains.annotations.NotNull;
import io.vertx.core.Handler;
/** # ResponseTime
*
* Adds the ```x-response-time``` header displaying the response duration in milliseconds.
*/
public class ResponseTime extends Middleware {
@Override
public void handle(@NotNull final YokeRequest request, @NotNull final Handler<Object> next) {
final long start = System.currentTimeMillis();
final YokeResponse response = request.response();
response.headersHandler(new Handler<Void>() {
@Override
public void handle(Void event) {
long duration = System.currentTimeMillis() - start;
response.putHeader("x-response-time", duration + "ms");
}
});
next.handle(null);
}
}