package hprose.example.filter.stat;
import hprose.common.HproseContext;
import hprose.common.HproseFilter;
import java.nio.ByteBuffer;
import java.util.logging.Level;
import java.util.logging.Logger;
public class StatFilter implements HproseFilter {
private static final Logger logger = Logger.getLogger(StatFilter.class.getName());
private void stat(HproseContext context) {
long now = System.currentTimeMillis();
long starttime = context.getLong("starttime");
if (starttime == 0) {
context.setLong("starttime", now);
}
else {
logger.log(Level.INFO, "It takes {0} ms.", now - starttime);
}
}
@Override
public ByteBuffer inputFilter(ByteBuffer data, HproseContext context) {
stat(context);
return data;
}
@Override
public ByteBuffer outputFilter(ByteBuffer data, HproseContext context) {
stat(context);
return data;
}
}