This commit is contained in:
Redkale
2018-05-18 17:41:51 +08:00
parent 774286952b
commit 6acb17da7c
7 changed files with 53 additions and 6 deletions

View File

@@ -153,7 +153,7 @@ public class Context {
return bufferPool; return bufferPool;
} }
public Consumer<ByteBuffer> getBufferConsumer() { protected Consumer<ByteBuffer> getBufferConsumer() {
return bufferPool; return bufferPool;
} }
@@ -161,11 +161,11 @@ public class Context {
return bufferPool.get(); return bufferPool.get();
} }
public void offerBuffer(ByteBuffer buffer) { protected void offerBuffer(ByteBuffer buffer) {
bufferPool.accept(buffer); bufferPool.accept(buffer);
} }
public void offerBuffer(ByteBuffer... buffers) { protected void offerBuffer(ByteBuffer... buffers) {
if (buffers == null) return; if (buffers == null) return;
for (ByteBuffer buffer : buffers) { for (ByteBuffer buffer : buffers) {
bufferPool.accept(buffer); bufferPool.accept(buffer);

View File

@@ -156,6 +156,10 @@ public abstract class Response<C extends Context, R extends Request<C>> {
return bodyBufferSupplier; return bodyBufferSupplier;
} }
protected void offerBuffer(ByteBuffer... buffers) {
context.offerBuffer(buffers);
}
protected AsyncConnection removeChannel() { protected AsyncConnection removeChannel() {
AsyncConnection ch = this.channel; AsyncConnection ch = this.channel;
this.channel = null; this.channel = null;

View File

@@ -5,10 +5,12 @@
*/ */
package org.redkale.net.http; package org.redkale.net.http;
import java.nio.ByteBuffer;
import org.redkale.asm.MethodDebugVisitor; import org.redkale.asm.MethodDebugVisitor;
import java.nio.channels.CompletionHandler; import java.nio.channels.CompletionHandler;
import java.security.*; import java.security.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.function.*;
import org.redkale.asm.*; import org.redkale.asm.*;
import static org.redkale.asm.Opcodes.*; import static org.redkale.asm.Opcodes.*;
import org.redkale.net.*; import org.redkale.net.*;
@@ -47,6 +49,21 @@ public class HttpContext extends Context {
return responsePool; return responsePool;
} }
@Override
protected Consumer<ByteBuffer> getBufferConsumer() {
return super.getBufferConsumer();
}
@Override
protected void offerBuffer(ByteBuffer buffer) {
super.offerBuffer(buffer);
}
@Override
protected void offerBuffer(ByteBuffer... buffers) {
super.offerBuffer(buffers);
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
protected <H extends CompletionHandler> Creator<H> loadAsyncHandlerCreator(Class<H> handlerClass) { protected <H extends CompletionHandler> Creator<H> loadAsyncHandlerCreator(Class<H> handlerClass) {
Creator<H> creator = asyncHandlerCreators.get(handlerClass); Creator<H> creator = asyncHandlerCreators.get(handlerClass);

View File

@@ -221,6 +221,11 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
return this.autoOptions; return this.autoOptions;
} }
@Override
protected void offerBuffer(ByteBuffer... buffers) {
super.offerBuffer(buffers);
}
/** /**
* 增加Cookie值 * 增加Cookie值
* *

View File

@@ -6,7 +6,6 @@
package org.redkale.net.http; package org.redkale.net.http;
import org.redkale.net.AsyncConnection; import org.redkale.net.AsyncConnection;
import org.redkale.net.Context;
import static org.redkale.net.http.WebSocket.*; import static org.redkale.net.http.WebSocket.*;
import org.redkale.net.http.WebSocketPacket.FrameType; import org.redkale.net.http.WebSocketPacket.FrameType;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
@@ -34,7 +33,7 @@ class WebSocketRunner implements Runnable {
private final WebSocket webSocket; private final WebSocket webSocket;
protected final Context context; protected final HttpContext context;
private ByteBuffer readBuffer; private ByteBuffer readBuffer;
@@ -50,7 +49,7 @@ class WebSocketRunner implements Runnable {
protected long lastReadTime; protected long lastReadTime;
WebSocketRunner(Context context, WebSocket webSocket, BiConsumer<WebSocket, Object> messageConsumer, AsyncConnection channel) { WebSocketRunner(HttpContext context, WebSocket webSocket, BiConsumer<WebSocket, Object> messageConsumer, AsyncConnection channel) {
this.context = context; this.context = context;
this.engine = webSocket._engine; this.engine = webSocket._engine;
this.webSocket = webSocket; this.webSocket = webSocket;

View File

@@ -5,6 +5,8 @@
*/ */
package org.redkale.net.sncp; package org.redkale.net.sncp;
import java.nio.ByteBuffer;
import java.util.function.*;
import org.redkale.net.*; import org.redkale.net.*;
/** /**
@@ -19,6 +21,21 @@ public class SncpContext extends Context {
super(config); super(config);
} }
@Override
protected Consumer<ByteBuffer> getBufferConsumer() {
return super.getBufferConsumer();
}
@Override
protected void offerBuffer(ByteBuffer buffer) {
super.offerBuffer(buffer);
}
@Override
protected void offerBuffer(ByteBuffer... buffers) {
super.offerBuffer(buffers);
}
public static class SncpContextConfig extends ContextConfig { public static class SncpContextConfig extends ContextConfig {
} }

View File

@@ -52,6 +52,11 @@ public final class SncpResponse extends Response<SncpContext, SncpRequest> {
if (this.addrBytes.length != 4) throw new RuntimeException("SNCP serverAddress only support IPv4"); if (this.addrBytes.length != 4) throw new RuntimeException("SNCP serverAddress only support IPv4");
} }
@Override
protected void offerBuffer(ByteBuffer... buffers) {
super.offerBuffer(buffers);
}
public void finish(final int retcode, final BsonWriter out) { public void finish(final int retcode, final BsonWriter out) {
if (out == null) { if (out == null) {
final ByteBuffer buffer = pollWriteReadBuffer(); final ByteBuffer buffer = pollWriteReadBuffer();