package hprose.example.filterhandler.stat;
import hprose.common.FilterHandler;
import hprose.common.HproseContext;
import hprose.common.NextFilterHandler;
import hprose.util.concurrent.Promise;
import java.nio.ByteBuffer;
public class StatHandler implements FilterHandler {
private final String message;
public StatHandler(String message) {
this.message = message;
}
@Override
public Promise<ByteBuffer> handle(ByteBuffer request, HproseContext context, NextFilterHandler next) {
long start = System.currentTimeMillis();
Promise<ByteBuffer> response = next.handle(request, context);
response.whenComplete(() -> {
long end = System.currentTimeMillis();
System.out.println(message + ": It takes " + (end - start) + " ms.");
});
return response;
}
}