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 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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue