This commit is contained in:
wentch
2016-01-14 09:56:52 +08:00
parent 794cbac499
commit 85769c06fa
3 changed files with 11 additions and 9 deletions

View File

@@ -7,6 +7,7 @@ package org.redkale.net;
import java.nio.*;
import java.nio.channels.*;
import java.util.function.*;
/**
*
@@ -27,7 +28,7 @@ public abstract class Response<R extends Request> {
private boolean inited = true;
protected Runnable recycleListener;
protected BiConsumer<Request, Response> recycleListener;
private final CompletionHandler finishHandler = new CompletionHandler<Integer, ByteBuffer>() {
@@ -103,7 +104,7 @@ public abstract class Response<R extends Request> {
boolean keepAlive = request.keepAlive;
if (recycleListener != null) {
try {
recycleListener.run();
recycleListener.accept(request, this);
} catch (Exception e) {
System.err.println(request);
e.printStackTrace();
@@ -136,7 +137,7 @@ public abstract class Response<R extends Request> {
this.request.createtime = System.currentTimeMillis();
}
public void setRecycleListener(Runnable recycleListener) {
public void setRecycleListener(BiConsumer<Request, Response> recycleListener) {
this.recycleListener = recycleListener;
}

View File

@@ -109,7 +109,7 @@ public abstract class BasedHttpServlet extends HttpServlet {
response.finish(ce.getBuffers());
return;
}
response.setBufferHandler(entry.cacheInterceptor);
response.setBufferHandler(entry.cacheHandler);
}
entry.servlet.execute(request, response);
}
@@ -261,7 +261,7 @@ public abstract class BasedHttpServlet extends HttpServlet {
HttpCacheable hc = method.getAnnotation(HttpCacheable.class);
this.cachetimeout = hc == null ? 0 : hc.timeout() * 1000;
this.cache = cachetimeout > 0 ? new ConcurrentHashMap() : null;
this.cacheInterceptor = cachetimeout > 0 ? (HttpResponse response, ByteBuffer[] buffers) -> {
this.cacheHandler = cachetimeout > 0 ? (HttpResponse response, ByteBuffer[] buffers) -> {
int status = response.getStatus();
if (status != 200) return null;
CacheEntry ce = new CacheEntry(response.getStatus(), response.getContentType(), buffers);
@@ -274,7 +274,7 @@ public abstract class BasedHttpServlet extends HttpServlet {
return this.moduleid != 0 || this.actionid != 0;
}
public final HttpResponse.BufferHandler cacheInterceptor;
public final HttpResponse.BufferHandler cacheHandler;
public final ConcurrentHashMap<String, CacheEntry> cache;

View File

@@ -36,9 +36,10 @@ public class HttpResponse<R extends HttpRequest> extends Response<R> {
/**
* HttpResponse.finish 方法内调用
* 主要给@HttpCacheable使用
*
*/
public static interface BufferHandler {
protected static interface BufferHandler {
public ByteBuffer[] execute(final HttpResponse response, final ByteBuffer[] buffers);
}
@@ -504,11 +505,11 @@ public class HttpResponse<R extends HttpRequest> extends Response<R> {
this.contentLength = contentLength;
}
public BufferHandler getBufferHandler() {
protected BufferHandler getBufferHandler() {
return bufferHandler;
}
public void setBufferHandler(BufferHandler bufferHandler) {
protected void setBufferHandler(BufferHandler bufferHandler) {
this.bufferHandler = bufferHandler;
}