2014-05-15 23:05:20 +00:00
|
|
|
package org.capnproto;
|
|
|
|
|
|
|
|
import java.nio.ByteBuffer;
|
|
|
|
|
2014-05-19 12:43:58 +00:00
|
|
|
public final class MessageReader {
|
2014-06-18 01:06:50 +00:00
|
|
|
final ReaderArena arena;
|
2014-05-15 23:05:20 +00:00
|
|
|
|
|
|
|
public MessageReader(ByteBuffer[] segmentSlices) {
|
2014-06-18 01:06:50 +00:00
|
|
|
this.arena = new ReaderArena(segmentSlices);
|
2014-05-15 23:05:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public <T> T getRoot(FromStructReader<T> factory) {
|
2014-06-18 01:06:50 +00:00
|
|
|
SegmentReader segment = this.arena.tryGetSegment(0);
|
2014-05-17 19:15:18 +00:00
|
|
|
PointerReader pointerReader = PointerReader.getRoot(segment, 0,
|
2014-05-15 23:05:20 +00:00
|
|
|
0x7fffffff /* XXX */);
|
|
|
|
AnyPointer.Reader any = new AnyPointer.Reader(pointerReader);
|
|
|
|
return any.getAsStruct(factory);
|
|
|
|
}
|
|
|
|
}
|