use of com.perl5.lang.perl.idea.run.debugger.protocol.PerlValueRequestDescriptor in project Perl5-IDEA by Camelcade.
the class PerlDebugUtil method requestAndComputeChildren.
public static void requestAndComputeChildren(@NotNull final XCompositeNode node, final PerlStackFrame perlStackFrame, final int[] offset, final int size, String key) {
PerlDebugThread thread = perlStackFrame.getPerlExecutionStack().getSuspendContext().getDebugThread();
final int frameSize = XCompositeNode.MAX_CHILDREN_TO_SHOW;
thread.sendCommandAndGetResponse("getchildren", new PerlValueRequestDescriptor(offset[0], frameSize, key), new PerlDebuggingTransactionHandler() {
@Override
public void run(JsonObject jsonObject, JsonDeserializationContext jsonDeserializationContext) {
PerlValueDescriptor[] descriptors = jsonDeserializationContext.deserialize(jsonObject.getAsJsonArray("data"), PerlValueDescriptor[].class);
XValueChildrenList list = new XValueChildrenList();
for (PerlValueDescriptor descriptor : descriptors) {
list.add(new PerlXNamedValue(descriptor, perlStackFrame));
offset[0]++;
}
boolean isLast = offset[0] >= size;
node.addChildren(list, isLast);
if (!isLast) {
node.tooManyChildren(size - offset[0]);
}
}
});
}
Aggregations