move captable contexts

This commit is contained in:
Vaci Koblizek 2022-03-06 16:46:39 +00:00
parent 8c6b9c8caa
commit f510bd19aa
7 changed files with 28 additions and 18 deletions

View file

@ -48,7 +48,7 @@ public final class AnyPointer {
}
public static final Factory factory = new Factory();
public final static class Reader extends Capability.ReaderContext {
public final static class Reader extends CapTableReader.ReaderContext {
final SegmentReader segment;
final int pointer; // offset in words
final int nestingLimit;
@ -93,7 +93,7 @@ public final class AnyPointer {
}
}
public static final class Builder extends Capability.BuilderContext {
public static final class Builder extends CapTableBuilder.BuilderContext {
final SegmentBuilder segment;
final int pointer;

View file

@ -1,6 +1,11 @@
package org.capnproto;
public interface CapTableBuilder extends CapTableReader {
class BuilderContext {
public CapTableBuilder capTable;
}
int injectCap(ClientHook cap);
void dropCap(int index);

View file

@ -1,5 +1,10 @@
package org.capnproto;
public interface CapTableReader {
class ReaderContext {
public CapTableReader capTable;
}
ClientHook extractCap(int index);
}

View file

@ -23,7 +23,7 @@ package org.capnproto;
import java.util.List;
public class ListBuilder extends Capability.BuilderContext {
public class ListBuilder extends CapTableBuilder.BuilderContext {
public interface Factory<T> {
T constructBuilder(SegmentBuilder segment, int ptr,
int elementCount, int step,
@ -31,9 +31,9 @@ public class ListBuilder extends Capability.BuilderContext {
default T constructBuilder(SegmentBuilder segment, CapTableBuilder capTable, int ptr,
int elementCount, int step,
int structDataSize, short structPointerCount) {
var result = constructBuilder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
if (result instanceof Capability.BuilderContext) {
((Capability.BuilderContext) result).capTable = capTable;
T result = constructBuilder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
if (result instanceof CapTableBuilder.BuilderContext) {
((CapTableBuilder.BuilderContext) result).capTable = capTable;
}
return result;
}

View file

@ -21,7 +21,7 @@
package org.capnproto;
public class ListReader extends Capability.ReaderContext {
public class ListReader extends CapTableReader.ReaderContext {
public interface Factory<T> {
T constructReader(SegmentReader segment,
int ptr,
@ -31,9 +31,9 @@ public class ListReader extends Capability.ReaderContext {
default T constructReader(SegmentReader segment, CapTableReader capTable, int ptr,
int elementCount, int step,
int structDataSize, short structPointerCount, int nestingLimit) {
var result = constructReader(segment, ptr, elementCount, step, structDataSize, structPointerCount, nestingLimit);
if (result instanceof Capability.ReaderContext) {
((Capability.ReaderContext) result).capTable = capTable;
T result = constructReader(segment, ptr, elementCount, step, structDataSize, structPointerCount, nestingLimit);
if (result instanceof CapTableReader.ReaderContext) {
((CapTableReader.ReaderContext) result).capTable = capTable;
}
return result;
}

View file

@ -21,15 +21,15 @@
package org.capnproto;
public class StructBuilder extends Capability.BuilderContext {
public class StructBuilder extends CapTableBuilder.BuilderContext {
public interface Factory<T> {
T constructBuilder(SegmentBuilder segment, int data, int pointers, int dataSize,
short pointerCount);
default T constructBuilder(SegmentBuilder segment, CapTableBuilder capTable, int data, int pointers, int dataSize,
short pointerCount) {
var result = constructBuilder(segment, data, pointers, dataSize, pointerCount);
if (result instanceof Capability.BuilderContext) {
((Capability.BuilderContext) result).capTable = capTable;
T result = constructBuilder(segment, data, pointers, dataSize, pointerCount);
if (result instanceof CapTableBuilder.BuilderContext) {
((CapTableBuilder.BuilderContext) result).capTable = capTable;
}
return result;
}

View file

@ -21,7 +21,7 @@
package org.capnproto;
public class StructReader extends Capability.ReaderContext {
public class StructReader extends CapTableReader.ReaderContext {
public interface Factory<T> {
T constructReader(SegmentReader segment, int data, int pointers,
int dataSize, short pointerCount,
@ -29,9 +29,9 @@ public class StructReader extends Capability.ReaderContext {
default T constructReader(SegmentReader segment, CapTableReader capTable, int data, int pointers,
int dataSize, short pointerCount,
int nestingLimit) {
var result = constructReader(segment, data, pointers, dataSize, pointerCount, nestingLimit);
if (result instanceof Capability.ReaderContext) {
((Capability.ReaderContext) result).capTable = capTable;
T result = constructReader(segment, data, pointers, dataSize, pointerCount, nestingLimit);
if (result instanceof CapTableReader.ReaderContext) {
((CapTableReader.ReaderContext) result).capTable = capTable;
}
return result;
}