dump more message types

This commit is contained in:
Vaci Koblizek 2020-10-23 19:05:36 +01:00
parent 1bf4bfc8a6
commit dc4f8d07b4

View file

@ -58,8 +58,8 @@ public class RpcDumper {
} }
String dump(RpcProtocol.Message.Reader message, RpcTwoPartyProtocol.Side sender) { String dump(RpcProtocol.Message.Reader message, RpcTwoPartyProtocol.Side sender) {
switch (message.which()) { return switch (message.which()) {
case CALL: { case CALL -> {
var call = message.getCall(); var call = message.getCall();
var iface = call.getInterfaceId(); var iface = call.getInterfaceId();
@ -92,55 +92,72 @@ public class RpcDumper {
} }
} }
} }
return sender.name() + "(" + call.getQuestionId() + "): call " + yield sender.name() + "(" + call.getQuestionId() + "): call " +
call.getTarget() + " <- " + interfaceName + "." + call.getTarget() + " <- " + interfaceName + "." +
methodName + " " + params.getClass().getName() + " caps:[" + methodName + " " + params.getClass().getName() + " caps:[" +
dumpCaps(payload.getCapTable()) + "]" + dumpCaps(payload.getCapTable()) + "]" +
(sendResultsTo.isCaller() ? "" : (" sendResultsTo:" + sendResultsTo)); (sendResultsTo.isCaller() ? "" : (" sendResultsTo:" + sendResultsTo));
} }
case RETURN: { case RETURN -> {
var ret = message.getReturn(); var ret = message.getReturn();
var text = sender.name() + "(" + ret.getAnswerId() + "): ";
var returnType = getReturnType( var returnType = getReturnType(
sender == RpcTwoPartyProtocol.Side.CLIENT sender == RpcTwoPartyProtocol.Side.CLIENT
? RpcTwoPartyProtocol.Side.SERVER ? RpcTwoPartyProtocol.Side.SERVER
: RpcTwoPartyProtocol.Side.CLIENT, : RpcTwoPartyProtocol.Side.CLIENT,
ret.getAnswerId()); ret.getAnswerId());
switch (ret.which()) { yield switch (ret.which()) {
case RESULTS: { case RESULTS -> {
var payload = ret.getResults(); var payload = ret.getResults();
return sender.name() + "(" + ret.getAnswerId() + "): return " + payload + yield text + "return " + payload +
" caps:[" + dumpCaps(payload.getCapTable()) + "]"; " caps:[" + dumpCaps(payload.getCapTable()) + "]";
} }
case EXCEPTION: { case EXCEPTION -> {
var exc = ret.getException(); var exc = ret.getException();
return sender.name() + "(" + ret.getAnswerId() + "): exception " yield text + "exception "
+ exc.getType().toString() + + exc.getType().toString() +
" " + exc.getReason(); " " + exc.getReason();
} }
default: { default -> {
return sender.name() + "(" + ret.getAnswerId() + "): " + ret.which().name(); yield text + ret.which().name();
} }
} };
} }
case BOOTSTRAP: { case BOOTSTRAP -> {
var restore = message.getBootstrap(); var restore = message.getBootstrap();
setReturnType(sender, restore.getQuestionId(), 0); setReturnType(sender, restore.getQuestionId(), 0);
return sender.name() + "(" + restore.getQuestionId() + "): bootstrap " + yield sender.name() + "(" + restore.getQuestionId() + "): bootstrap " +
restore.getDeprecatedObjectId(); restore.getDeprecatedObjectId();
} }
case ABORT: { case ABORT -> {
var abort = message.getAbort(); var abort = message.getAbort();
return sender.name() + ": abort " yield sender.name() + ": abort "
+ abort.getType().toString() + abort.getType().toString()
+ " \"" + abort.getReason().toString() + "\""; + " \"" + abort.getReason().toString() + "\"";
} }
default: case RESOLVE -> {
return sender.name() + ": " + message.which().name(); var resolve = message.getResolve();
} var id = resolve.getPromiseId();
var text = switch (resolve.which()) {
case CAP -> {
var cap = resolve.getCap();
yield cap.which().toString();
}
case EXCEPTION -> {
var exc = resolve.getException();
yield exc.getType().toString() + ": " + exc.getReason().toString();
}
default -> resolve.which().toString();
};
yield sender.name() + "(" + id + "): resolve " + text;
}
default -> sender.name() + ": " + message.which().name();
};
} }
} }