This commit is contained in:
@@ -6,7 +6,10 @@
|
||||
package org.redkale.mq;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.redkale.net.sncp.*;
|
||||
import org.redkale.util.Utility;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -28,4 +31,13 @@ public class SncpMessageRequest extends SncpRequest {
|
||||
readHeader(ByteBuffer.wrap(message.getContent()));
|
||||
}
|
||||
|
||||
@Override //被SncpAsyncHandler.sncp_setParams调用
|
||||
protected void sncp_setParams(SncpDynServlet.SncpServletAction action, Logger logger, Object... params) {
|
||||
if (message.localattach != null) return;
|
||||
if (logger.isLoggable(Level.FINER)) {
|
||||
message.attach(Utility.append(new Object[]{action.actionName()}, params));
|
||||
} else {
|
||||
message.attach(params);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ package org.redkale.net.sncp;
|
||||
import org.redkale.asm.MethodDebugVisitor;
|
||||
import java.nio.channels.CompletionHandler;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.logging.Level;
|
||||
import org.redkale.asm.*;
|
||||
import static org.redkale.asm.Opcodes.*;
|
||||
@@ -258,7 +259,10 @@ public interface SncpAsyncHandler<V, A> extends CompletionHandler<V, A> {
|
||||
|
||||
protected CompletableFuture future;
|
||||
|
||||
public DefaultSncpAsyncHandler(SncpServletAction action, BsonReader in, BsonWriter out, SncpRequest request, SncpResponse response) {
|
||||
protected Logger logger;
|
||||
|
||||
public DefaultSncpAsyncHandler(Logger logger, SncpServletAction action, BsonReader in, BsonWriter out, SncpRequest request, SncpResponse response) {
|
||||
this.logger = logger;
|
||||
this.action = action;
|
||||
this.in = in;
|
||||
this.out = out;
|
||||
@@ -294,6 +298,7 @@ public interface SncpAsyncHandler<V, A> extends CompletionHandler<V, A> {
|
||||
@Override
|
||||
public void sncp_setParams(Object... params) {
|
||||
this.params = params;
|
||||
this.request.sncp_setParams(this.action, this.logger, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -128,17 +128,17 @@ public final class SncpDynServlet extends SncpServlet {
|
||||
try {
|
||||
if (action.handlerFuncParamIndex >= 0) {
|
||||
if (action.handlerFuncParamClass == CompletionHandler.class) {
|
||||
handler = new DefaultSncpAsyncHandler(action, in, out, request, response);
|
||||
handler = new DefaultSncpAsyncHandler(logger, action, in, out, request, response);
|
||||
} else {
|
||||
Creator<SncpAsyncHandler> creator = action.handlerCreator;
|
||||
if (creator == null) {
|
||||
creator = SncpAsyncHandler.Factory.createCreator(action.handlerFuncParamClass);
|
||||
action.handlerCreator = creator;
|
||||
}
|
||||
handler = creator.create(new DefaultSncpAsyncHandler(action, in, out, request, response));
|
||||
handler = creator.create(new DefaultSncpAsyncHandler(logger, action, in, out, request, response));
|
||||
}
|
||||
} else if (action.boolReturnTypeFuture) {
|
||||
handler = new DefaultSncpAsyncHandler(action, in, out, request, response);
|
||||
handler = new DefaultSncpAsyncHandler(logger, action, in, out, request, response);
|
||||
}
|
||||
in.setBytes(request.getBody());
|
||||
action.action(in, out, handler);
|
||||
@@ -208,6 +208,10 @@ public final class SncpDynServlet extends SncpServlet {
|
||||
out.writeByte((byte) 0);
|
||||
}
|
||||
|
||||
public String actionName() {
|
||||
return method.getDeclaringClass().getSimpleName() + "." + method.getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* <blockquote><pre>
|
||||
* public class TestService implements Service {
|
||||
|
||||
@@ -8,6 +8,7 @@ package org.redkale.net.sncp;
|
||||
import java.net.*;
|
||||
import java.nio.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.redkale.convert.bson.*;
|
||||
import org.redkale.net.*;
|
||||
import org.redkale.util.*;
|
||||
@@ -98,6 +99,10 @@ public class SncpRequest extends Request<SncpContext> {
|
||||
this.keepAlive = true;
|
||||
}
|
||||
|
||||
//被SncpAsyncHandler.sncp_setParams调用
|
||||
protected void sncp_setParams(SncpDynServlet.SncpServletAction action, Logger logger, Object... params) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return SncpRequest.class.getSimpleName() + "{seqid=" + this.seqid
|
||||
|
||||
Reference in New Issue
Block a user