move captable contexts
This commit is contained in:
parent
8c6b9c8caa
commit
f510bd19aa
7 changed files with 28 additions and 18 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
package org.capnproto;
|
||||
|
||||
public interface CapTableReader {
|
||||
|
||||
class ReaderContext {
|
||||
public CapTableReader capTable;
|
||||
}
|
||||
|
||||
ClientHook extractCap(int index);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue