2014-05-15 23:05:20 +00:00
|
|
|
package org.capnproto;
|
|
|
|
|
2014-05-19 12:43:58 +00:00
|
|
|
public final class AnyPointer {
|
2014-05-15 23:05:20 +00:00
|
|
|
|
2014-05-19 12:43:58 +00:00
|
|
|
public final static class Reader {
|
2014-10-08 15:12:52 +00:00
|
|
|
final SegmentReader segment;
|
|
|
|
final int pointer;
|
|
|
|
final int nestingLimit;
|
|
|
|
|
|
|
|
public Reader(SegmentReader segment, int pointer, int nestingLimit) {
|
|
|
|
this.segment = segment;
|
|
|
|
this.pointer = pointer;
|
|
|
|
this.nestingLimit = nestingLimit;
|
2014-05-15 23:05:20 +00:00
|
|
|
}
|
|
|
|
|
2014-10-08 02:35:08 +00:00
|
|
|
public final <T> T getAs(FromPointerReader<T> factory) {
|
2014-10-08 15:12:52 +00:00
|
|
|
return factory.fromPointerReader(this.segment, this.pointer, null, 0, this.nestingLimit);
|
2014-10-06 15:15:33 +00:00
|
|
|
}
|
2014-05-15 23:05:20 +00:00
|
|
|
}
|
|
|
|
|
2014-05-24 14:12:44 +00:00
|
|
|
public static final class Builder {
|
|
|
|
public final PointerBuilder builder;
|
|
|
|
|
|
|
|
public Builder(PointerBuilder builder) {
|
|
|
|
this.builder = builder;
|
|
|
|
}
|
|
|
|
|
2014-10-08 02:35:08 +00:00
|
|
|
public final <T> T initAs(InitFromPointerBuilder<T> factory) {
|
2014-10-08 15:00:22 +00:00
|
|
|
return factory.initFromPointerBuilder(this.builder.segment, this.builder.pointer);
|
2014-10-08 02:35:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public final <T> T initAs(InitSizedFromPointerBuilder<T> factory, int elementCount) {
|
2014-10-08 15:00:22 +00:00
|
|
|
return factory.initSizedFromPointerBuilder(this.builder.segment, this.builder.pointer, elementCount);
|
2014-05-24 14:12:44 +00:00
|
|
|
}
|
2014-10-02 15:54:37 +00:00
|
|
|
|
|
|
|
public final void clear() {
|
|
|
|
this.builder.clear();
|
|
|
|
}
|
2014-05-24 14:12:44 +00:00
|
|
|
}
|
|
|
|
|
2014-05-15 23:05:20 +00:00
|
|
|
}
|