diff --git a/Makefile b/Makefile index aab59ed..4ff0f33 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ CXX=clang++ CXX_FLAGS=-std=c++11 -stdlib=libc++ `pkg-config capnp --cflags --libs` -CAPNPC_JAVA_SOURCES=generator/src/main/cpp/compiler/capnpc-java.c++ +CAPNPC_JAVA_SOURCES=compiler/src/main/cpp/capnpc-java.c++ .PHONY: all clean addressbook @@ -16,4 +16,4 @@ capnpc-java : $(CAPNPC_JAVA_SOURCES) addressbook : capnpc-java PWD=pwd mkdir -p examples/src/main/generated - capnp compile -I$(PWD)/generator/src/main/cpp/compiler --src-prefix=examples/src/main/schema -o./capnpc-java:examples/src/main/generated examples/src/main/schema/addressbook.capnp + capnp compile -I$(PWD)/compiler/src/main/cpp --src-prefix=examples/src/main/schema -o./capnpc-java:examples/src/main/generated examples/src/main/schema/addressbook.capnp diff --git a/generator/src/main/cpp/compiler/capnpc-java.c++ b/compiler/src/main/cpp/capnpc-java.c++ similarity index 100% rename from generator/src/main/cpp/compiler/capnpc-java.c++ rename to compiler/src/main/cpp/capnpc-java.c++ diff --git a/generator/src/main/cpp/compiler/java_support/java.capnp b/compiler/src/main/cpp/java_support/java.capnp similarity index 100% rename from generator/src/main/cpp/compiler/java_support/java.capnp rename to compiler/src/main/cpp/java_support/java.capnp diff --git a/generator/src/main/cpp/compiler/java_support/java.capnp.c++ b/compiler/src/main/cpp/java_support/java.capnp.c++ similarity index 100% rename from generator/src/main/cpp/compiler/java_support/java.capnp.c++ rename to compiler/src/main/cpp/java_support/java.capnp.c++ diff --git a/generator/src/main/cpp/compiler/java_support/java.capnp.h b/compiler/src/main/cpp/java_support/java.capnp.h similarity index 100% rename from generator/src/main/cpp/compiler/java_support/java.capnp.h rename to compiler/src/main/cpp/java_support/java.capnp.h diff --git a/generator/src/main/java/org/capnproto/FromStructBuilder.java b/generator/src/main/java/org/capnproto/FromStructBuilder.java deleted file mode 100644 index 4b44e0b..0000000 --- a/generator/src/main/java/org/capnproto/FromStructBuilder.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.capnproto; - -public interface FromStructBuilder { - public abstract T fromStructBuilder(StructBuilder builder); - public abstract StructSize structSize(); -} diff --git a/project/build.scala b/project/build.scala index 9a826f9..37240f8 100644 --- a/project/build.scala +++ b/project/build.scala @@ -7,22 +7,27 @@ object Build extends sbt.Build { project( id = "capnproto-java", base = file(".") - ).aggregate(generator, examples) + ).aggregate(compiler, runtime, examples) .settings(cleanFiles <+= baseDirectory { base => base / "capnpc-java"}) - lazy val generator = + lazy val compiler = project( - id = "generator", - base = file("generator") - ).settings(Defaults.itSettings: _*) - .settings(makeCppTask) + id = "compiler", + base = file("compiler") + ).settings(makeCppTask) .settings(compile <<= compile in Compile dependsOn makeCpp) + lazy val runtime = + project( + id = "runtime", + base = file("runtime") + ) + lazy val examples = project( id = "examples", base = file("examples") - ).dependsOn(generator) + ).dependsOn(runtime) .settings(makeExamplesTask) .settings(compile <<= compile in Compile dependsOn makeExamples) .settings(unmanagedSourceDirectories in Compile += sourceDirectory.value / "main" / "generated") diff --git a/generator/src/main/java/org/capnproto/AnyPointer.java b/runtime/src/main/java/org/capnproto/AnyPointer.java similarity index 70% rename from generator/src/main/java/org/capnproto/AnyPointer.java rename to runtime/src/main/java/org/capnproto/AnyPointer.java index 26346e8..a101cde 100644 --- a/generator/src/main/java/org/capnproto/AnyPointer.java +++ b/runtime/src/main/java/org/capnproto/AnyPointer.java @@ -1,9 +1,9 @@ package org.capnproto; -public class AnyPointer { +public final class AnyPointer { - public static class Reader { - public PointerReader reader; + public final static class Reader { + public final PointerReader reader; public Reader(PointerReader reader) { this.reader = reader; diff --git a/generator/src/main/java/org/capnproto/DecodeException.java b/runtime/src/main/java/org/capnproto/DecodeException.java similarity index 61% rename from generator/src/main/java/org/capnproto/DecodeException.java rename to runtime/src/main/java/org/capnproto/DecodeException.java index 4aad297..f8026d8 100644 --- a/generator/src/main/java/org/capnproto/DecodeException.java +++ b/runtime/src/main/java/org/capnproto/DecodeException.java @@ -1,6 +1,6 @@ package org.capnproto; -public class DecodeException extends RuntimeException { +public final class DecodeException extends RuntimeException { public DecodeException(String message) { super(message); } diff --git a/generator/src/main/java/org/capnproto/FieldSize.java b/runtime/src/main/java/org/capnproto/FieldSize.java similarity index 92% rename from generator/src/main/java/org/capnproto/FieldSize.java rename to runtime/src/main/java/org/capnproto/FieldSize.java index 52886ad..c3043b7 100644 --- a/generator/src/main/java/org/capnproto/FieldSize.java +++ b/runtime/src/main/java/org/capnproto/FieldSize.java @@ -1,6 +1,6 @@ package org.capnproto; -public class FieldSize { +public final class FieldSize { public static final byte VOID = 0; public static final byte BIT = 1; public static final byte BYTE = 2; diff --git a/runtime/src/main/java/org/capnproto/FromStructBuilder.java b/runtime/src/main/java/org/capnproto/FromStructBuilder.java new file mode 100644 index 0000000..5477a74 --- /dev/null +++ b/runtime/src/main/java/org/capnproto/FromStructBuilder.java @@ -0,0 +1,6 @@ +package org.capnproto; + +public interface FromStructBuilder { + T fromStructBuilder(StructBuilder builder); + StructSize structSize(); +} diff --git a/generator/src/main/java/org/capnproto/FromStructReader.java b/runtime/src/main/java/org/capnproto/FromStructReader.java similarity index 51% rename from generator/src/main/java/org/capnproto/FromStructReader.java rename to runtime/src/main/java/org/capnproto/FromStructReader.java index eaf1413..660784f 100644 --- a/generator/src/main/java/org/capnproto/FromStructReader.java +++ b/runtime/src/main/java/org/capnproto/FromStructReader.java @@ -1,5 +1,5 @@ package org.capnproto; public interface FromStructReader { - public abstract T fromStructReader(StructReader reader); + T fromStructReader(StructReader reader); } diff --git a/generator/src/main/java/org/capnproto/InputStreamMessageReader.java b/runtime/src/main/java/org/capnproto/InputStreamMessageReader.java similarity index 95% rename from generator/src/main/java/org/capnproto/InputStreamMessageReader.java rename to runtime/src/main/java/org/capnproto/InputStreamMessageReader.java index 1d8f796..489b865 100644 --- a/generator/src/main/java/org/capnproto/InputStreamMessageReader.java +++ b/runtime/src/main/java/org/capnproto/InputStreamMessageReader.java @@ -1,13 +1,12 @@ package org.capnproto; -import java.io.InputStream; import java.io.IOException; +import java.io.InputStream; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Vector; - -public class InputStreamMessageReader { +public final class InputStreamMessageReader { static byte[] readExact(InputStream is, int length) throws IOException { byte[] bytes = new byte[length]; @@ -52,7 +51,7 @@ public class InputStreamMessageReader { if (segmentCount > 1) { ByteBuffer moreSizesRaw = makeByteBuffer(readExact(is, 4 * (segmentCount & ~1))); - for(int ii = 0; ii < segmentCount - 1; ++ii) { + for (int ii = 0; ii < segmentCount - 1; ++ii) { int size = moreSizesRaw.getInt(ii * 4); moreSizes.add(size); totalWords += size; diff --git a/generator/src/main/java/org/capnproto/ListBuilder.java b/runtime/src/main/java/org/capnproto/ListBuilder.java similarity index 68% rename from generator/src/main/java/org/capnproto/ListBuilder.java rename to runtime/src/main/java/org/capnproto/ListBuilder.java index cb5edbe..4891fca 100644 --- a/generator/src/main/java/org/capnproto/ListBuilder.java +++ b/runtime/src/main/java/org/capnproto/ListBuilder.java @@ -1,12 +1,12 @@ 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; + final SegmentBuilder segment; + final int ptr; // byte offset to front of list + final int elementCount; + final int step; // in bits + final int structDataSize; // in bits + final short structPointerCount; public ListBuilder(SegmentBuilder segment, int ptr, int elementCount, int step, diff --git a/generator/src/main/java/org/capnproto/ListPointer.java b/runtime/src/main/java/org/capnproto/ListPointer.java similarity index 100% rename from generator/src/main/java/org/capnproto/ListPointer.java rename to runtime/src/main/java/org/capnproto/ListPointer.java diff --git a/generator/src/main/java/org/capnproto/ListReader.java b/runtime/src/main/java/org/capnproto/ListReader.java similarity index 74% rename from generator/src/main/java/org/capnproto/ListReader.java rename to runtime/src/main/java/org/capnproto/ListReader.java index 4c019f9..a63ad60 100644 --- a/generator/src/main/java/org/capnproto/ListReader.java +++ b/runtime/src/main/java/org/capnproto/ListReader.java @@ -1,16 +1,15 @@ package org.capnproto; -public class ListReader { - SegmentReader segment; - int ptr; // byte offset to front of list - int elementCount; - int step; // in bits - int structDataSize; // in bits - short structPointerCount; - int nestingLimit; +public final class ListReader { + final SegmentReader segment; + final int ptr; // byte offset to front of list + final int elementCount; + final int step; // in bits + final int structDataSize; // in bits + final short structPointerCount; + final int nestingLimit; - - public ListReader () { + public ListReader() { this.segment = null; this.ptr = 0; this.elementCount = 0; @@ -47,6 +46,6 @@ public class ListReader { int structPointers = structData + (this.structDataSize / 8); return new StructReader(this.segment, structData, structPointers / 8, this.structDataSize, - this.structPointerCount, (byte)(indexBit % 8), this.nestingLimit - 1); + this.structPointerCount, (byte) (indexBit % 8), this.nestingLimit - 1); } } diff --git a/generator/src/main/java/org/capnproto/MessageBuilder.java b/runtime/src/main/java/org/capnproto/MessageBuilder.java similarity index 100% rename from generator/src/main/java/org/capnproto/MessageBuilder.java rename to runtime/src/main/java/org/capnproto/MessageBuilder.java diff --git a/generator/src/main/java/org/capnproto/MessageReader.java b/runtime/src/main/java/org/capnproto/MessageReader.java similarity index 88% rename from generator/src/main/java/org/capnproto/MessageReader.java rename to runtime/src/main/java/org/capnproto/MessageReader.java index 2248638..9f0d2b5 100644 --- a/generator/src/main/java/org/capnproto/MessageReader.java +++ b/runtime/src/main/java/org/capnproto/MessageReader.java @@ -2,8 +2,8 @@ package org.capnproto; import java.nio.ByteBuffer; -public class MessageReader { - ByteBuffer[] segmentSlices; +public final class MessageReader { + final ByteBuffer[] segmentSlices; public MessageReader(ByteBuffer[] segmentSlices) { this.segmentSlices = segmentSlices; diff --git a/generator/src/main/java/org/capnproto/PointerBuilder.java b/runtime/src/main/java/org/capnproto/PointerBuilder.java similarity index 88% rename from generator/src/main/java/org/capnproto/PointerBuilder.java rename to runtime/src/main/java/org/capnproto/PointerBuilder.java index f470d20..5f583c2 100644 --- a/generator/src/main/java/org/capnproto/PointerBuilder.java +++ b/runtime/src/main/java/org/capnproto/PointerBuilder.java @@ -1,8 +1,8 @@ package org.capnproto; public final class PointerBuilder { - public SegmentBuilder segment; - public int pointer; // word offset + public final SegmentBuilder segment; + public final int pointer; // word offset public PointerBuilder(SegmentBuilder segment, int pointer) { this.segment = segment; diff --git a/generator/src/main/java/org/capnproto/PointerReader.java b/runtime/src/main/java/org/capnproto/PointerReader.java similarity index 90% rename from generator/src/main/java/org/capnproto/PointerReader.java rename to runtime/src/main/java/org/capnproto/PointerReader.java index dd75ce0..7c37588 100644 --- a/generator/src/main/java/org/capnproto/PointerReader.java +++ b/runtime/src/main/java/org/capnproto/PointerReader.java @@ -1,9 +1,9 @@ package org.capnproto; -public class PointerReader { - public SegmentReader segment; - public int pointer; // word offset - public int nestingLimit; +public final class PointerReader { + public final SegmentReader segment; + public final int pointer; // word offset + public final int nestingLimit; public PointerReader() { this.segment = null; diff --git a/generator/src/main/java/org/capnproto/SegmentBuilder.java b/runtime/src/main/java/org/capnproto/SegmentBuilder.java similarity index 93% rename from generator/src/main/java/org/capnproto/SegmentBuilder.java rename to runtime/src/main/java/org/capnproto/SegmentBuilder.java index 08e1160..5641099 100644 --- a/generator/src/main/java/org/capnproto/SegmentBuilder.java +++ b/runtime/src/main/java/org/capnproto/SegmentBuilder.java @@ -2,11 +2,11 @@ package org.capnproto; import java.nio.ByteBuffer; -public class SegmentBuilder extends SegmentReader { - public int pos = 0; // in words - +public final class SegmentBuilder extends SegmentReader { public static final int FAILED_ALLOCATION = -1; + public int pos = 0; // in words + public SegmentBuilder(ByteBuffer buf) { super(buf); } diff --git a/generator/src/main/java/org/capnproto/SegmentReader.java b/runtime/src/main/java/org/capnproto/SegmentReader.java similarity index 85% rename from generator/src/main/java/org/capnproto/SegmentReader.java rename to runtime/src/main/java/org/capnproto/SegmentReader.java index bc53125..c55aafb 100644 --- a/generator/src/main/java/org/capnproto/SegmentReader.java +++ b/runtime/src/main/java/org/capnproto/SegmentReader.java @@ -3,7 +3,7 @@ package org.capnproto; import java.nio.ByteBuffer; public class SegmentReader { - ByteBuffer buffer; + final ByteBuffer buffer; public SegmentReader(ByteBuffer buffer) { this.buffer = buffer; diff --git a/generator/src/main/java/org/capnproto/StructBuilder.java b/runtime/src/main/java/org/capnproto/StructBuilder.java similarity index 71% rename from generator/src/main/java/org/capnproto/StructBuilder.java rename to runtime/src/main/java/org/capnproto/StructBuilder.java index 3ff05c0..c8d6cc9 100644 --- a/generator/src/main/java/org/capnproto/StructBuilder.java +++ b/runtime/src/main/java/org/capnproto/StructBuilder.java @@ -1,16 +1,16 @@ 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 final SegmentBuilder segment; + public final int data; //byte offset to data section + public final int pointers; // word offset of pointer section + public final int dataSize; // in bits + public final short pointerCount; + public final byte bit0Offset; public StructBuilder(SegmentBuilder segment, int data, - int pointers, int dataSize, short pointerCount, - byte bit0Offset) { + int pointers, int dataSize, short pointerCount, + byte bit0Offset) { this.segment = segment; this.data = data; this.pointers = pointers; diff --git a/generator/src/main/java/org/capnproto/StructList.java b/runtime/src/main/java/org/capnproto/StructList.java similarity index 99% rename from generator/src/main/java/org/capnproto/StructList.java rename to runtime/src/main/java/org/capnproto/StructList.java index 4027907..6750a07 100644 --- a/generator/src/main/java/org/capnproto/StructList.java +++ b/runtime/src/main/java/org/capnproto/StructList.java @@ -1,6 +1,5 @@ package org.capnproto; - public final class StructList { public static final class Reader { public ListReader reader; diff --git a/generator/src/main/java/org/capnproto/StructPointer.java b/runtime/src/main/java/org/capnproto/StructPointer.java similarity index 100% rename from generator/src/main/java/org/capnproto/StructPointer.java rename to runtime/src/main/java/org/capnproto/StructPointer.java diff --git a/generator/src/main/java/org/capnproto/StructReader.java b/runtime/src/main/java/org/capnproto/StructReader.java similarity index 82% rename from generator/src/main/java/org/capnproto/StructReader.java rename to runtime/src/main/java/org/capnproto/StructReader.java index 23c45f9..a193452 100644 --- a/generator/src/main/java/org/capnproto/StructReader.java +++ b/runtime/src/main/java/org/capnproto/StructReader.java @@ -1,14 +1,13 @@ package org.capnproto; public final class StructReader { - public SegmentReader 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 int nestingLimit; - + public final SegmentReader segment; + public final int data; //byte offset to data section + public final int pointers; // word offset of pointer section + public final int dataSize; // in bits + public final short pointerCount; + public final byte bit0Offset; + public final int nestingLimit; public StructReader(SegmentReader segment, int data, int pointers, int dataSize, short pointerCount, @@ -62,8 +61,8 @@ public final class StructReader { public final PointerReader getPointerField(int ptrIndex) { if (ptrIndex < this.pointerCount) { return new PointerReader(this.segment, - this.pointers + ptrIndex, - this.nestingLimit); + this.pointers + ptrIndex, + this.nestingLimit); } else { return new PointerReader(); } diff --git a/generator/src/main/java/org/capnproto/StructSize.java b/runtime/src/main/java/org/capnproto/StructSize.java similarity index 100% rename from generator/src/main/java/org/capnproto/StructSize.java rename to runtime/src/main/java/org/capnproto/StructSize.java diff --git a/generator/src/main/java/org/capnproto/Text.java b/runtime/src/main/java/org/capnproto/Text.java similarity index 94% rename from generator/src/main/java/org/capnproto/Text.java rename to runtime/src/main/java/org/capnproto/Text.java index d347fed..9ed8dc1 100644 --- a/generator/src/main/java/org/capnproto/Text.java +++ b/runtime/src/main/java/org/capnproto/Text.java @@ -2,7 +2,7 @@ package org.capnproto; import java.nio.ByteBuffer; -public class Text { +public final class Text { public static final class Reader { public final ByteBuffer buffer; @@ -35,7 +35,7 @@ public class Text { try { return new String(bytes, "UTF-8"); - } catch(java.io.UnsupportedEncodingException e) { + } catch (java.io.UnsupportedEncodingException e) { return "unsupported encoding"; // XXX } } diff --git a/generator/src/main/java/org/capnproto/WireHelpers.java b/runtime/src/main/java/org/capnproto/WireHelpers.java similarity index 100% rename from generator/src/main/java/org/capnproto/WireHelpers.java rename to runtime/src/main/java/org/capnproto/WireHelpers.java diff --git a/generator/src/main/java/org/capnproto/WirePointer.java b/runtime/src/main/java/org/capnproto/WirePointer.java similarity index 100% rename from generator/src/main/java/org/capnproto/WirePointer.java rename to runtime/src/main/java/org/capnproto/WirePointer.java