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 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 SegmentReader segment;
final int pointer; // offset in words final int pointer; // offset in words
final int nestingLimit; 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 SegmentBuilder segment;
final int pointer; final int pointer;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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