add some builder classes

This commit is contained in:
David Renshaw 2014-05-11 20:00:57 -04:00
parent 252973015b
commit edc75358bb
6 changed files with 80 additions and 2 deletions

View file

@ -6,12 +6,16 @@ CAPNP_SOURCES=\
src/capnp/FromStructReader.java\ src/capnp/FromStructReader.java\
src/capnp/InputStreamMessageReader.java\ src/capnp/InputStreamMessageReader.java\
src/capnp/ListPointer.java\ src/capnp/ListPointer.java\
src/capnp/ListBuilder.java\
src/capnp/ListReader.java\ src/capnp/ListReader.java\
src/capnp/MessageReader.java\ src/capnp/MessageReader.java\
src/capnp/PointerBuilder.java\
src/capnp/PointerReader.java\ src/capnp/PointerReader.java\
src/capnp/SegmentBuilder.java\
src/capnp/SegmentReader.java\ src/capnp/SegmentReader.java\
src/capnp/StructReader.java\ src/capnp/StructBuilder.java\
src/capnp/StructPointer.java\ src/capnp/StructPointer.java\
src/capnp/StructReader.java\
src/capnp/StructList.java\ src/capnp/StructList.java\
src/capnp/Text.java\ src/capnp/Text.java\
src/capnp/WireHelpers.java\ src/capnp/WireHelpers.java\

View file

@ -0,0 +1,24 @@
package org.capnproto;
public final class ListBuilder {
SegmentBuilder segment;
int ptr; // byte offset to front of list
int elementCount;
int step; // in bits
int structDataSize; // in bits
short structPointerCount;
public ListBuilder(SegmentBuilder segment, int ptr,
int elementCount, int step,
int structDataSize, short structPointerCount) {
this.segment = segment;
this.ptr = ptr;
this.elementCount = elementCount;
this.step = step;
this.structDataSize = structDataSize;
this.structPointerCount = structPointerCount;
}
}

View file

@ -0,0 +1,11 @@
package org.capnproto;
public final class PointerBuilder {
public SegmentBuilder segment;
public int pointer; // word offset
public PointerBuilder(SegmentBuilder segment, int pointer) {
this.segment = segment;
this.pointer = pointer;
}
}

View file

@ -0,0 +1,9 @@
package org.capnproto;
import java.nio.ByteBuffer;
public class SegmentBuilder extends SegmentReader {
public SegmentBuilder(ByteBuffer buf) {
super(buf);
}
}

View file

@ -0,0 +1,31 @@
package org.capnproto;
public final class StructBuilder {
public SegmentBuilder segment;
public int data; //byte offset to data section
public int pointers; // word offset of pointer section
public int dataSize; // in bits
public short pointerCount;
public byte bit0Offset;
public StructBuilder(SegmentBuilder segment, int data,
int pointers, int dataSize, short pointerCount,
byte bit0Offset) {
this.segment = segment;
this.data = data;
this.pointers = pointers;
this.dataSize = dataSize;
this.pointerCount = pointerCount;
this.bit0Offset = bit0Offset;
}
public int getIntField(int offset) {
return this.segment.ptr.getInt(this.data + offset * 4);
}
public void setIntField(int offset, int value) {
this.segment.ptr.putInt(this.data + offset * 4, value);
}
}

View file

@ -3,7 +3,6 @@ package org.capnproto;
public class StructReader { public class StructReader {
public SegmentReader segment; public SegmentReader segment;
public int data; //byte offset to data section public int data; //byte offset to data section
public int pointers; // word offset of pointer section public int pointers; // word offset of pointer section
public int dataSize; // in bits public int dataSize; // in bits
public short pointerCount; public short pointerCount;