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