some cleanup

This commit is contained in:
David Renshaw 2014-05-27 21:05:57 -04:00
parent f0839b314e
commit 8cc6584d02
2 changed files with 43 additions and 41 deletions

View file

@ -174,9 +174,9 @@ kj::String safeIdentifier(kj::StringPtr identifier) {
// ======================================================================================= // =======================================================================================
class CapnpcCppMain { class CapnpcJavaMain {
public: public:
CapnpcCppMain(kj::ProcessContext& context): context(context) {} CapnpcJavaMain(kj::ProcessContext& context): context(context) {}
kj::MainFunc getMain() { kj::MainFunc getMain() {
return kj::MainBuilder(context, "Cap'n Proto loopback plugin version " VERSION, return kj::MainBuilder(context, "Cap'n Proto loopback plugin version " VERSION,
@ -270,9 +270,11 @@ private:
return javaFullName(schemaLoader.get(type.getInterface().getTypeId())); return javaFullName(schemaLoader.get(type.getInterface().getTypeId()));
case schema::Type::LIST: case schema::Type::LIST:
{
auto elemenType = type.getList().getElementType();
// XXX // XXX
return kj::strTree(" org.capnproto.StructList"); return kj::strTree(" org.capnproto.StructList");
}
case schema::Type::ANY_POINTER: case schema::Type::ANY_POINTER:
// Not used. // Not used.
return kj::strTree(); return kj::strTree();
@ -1019,8 +1021,7 @@ private:
spaces(indent), " public final ", type, ".Reader<", elementReaderType, ">", spaces(indent), " public final ", type, ".Reader<", elementReaderType, ">",
" get", titleCase, "() {\n", " get", titleCase, "() {\n",
spaces(indent), " return new ", type, ".Reader<", spaces(indent), " return new ", type, ".Reader<", elementReaderType, ">(\n",
elementReaderType, ">(\n",
spaces(indent), " ", elementReaderType, ".factory,\n", spaces(indent), " ", elementReaderType, ".factory,\n",
spaces(indent), " _reader.getPointerField(", offset, ").getList(", spaces(indent), " _reader.getPointerField(", offset, ").getList(",
// XXX what about lists of non-structs? // XXX what about lists of non-structs?
@ -1196,45 +1197,44 @@ private:
structNode.getPointerCount(); structNode.getPointerCount();
return StructText { return StructText {
kj::strTree(" struct ", name, ";\n"),
kj::strTree( kj::strTree(
" struct ", name, ";\n"), spaces(indent), "public static class ", name, " {\n",
kj::strTree( kj::strTree(
spaces(indent), "public static class ", name, " {\n", spaces(indent), " public static final org.capnproto.StructSize STRUCT_SIZE =\n",
kj::strTree( spaces(indent), " new org.capnproto.StructSize((short)", structNode.getDataWordCount(),
spaces(indent), " public static final org.capnproto.StructSize STRUCT_SIZE =\n", ",(short)", structNode.getPointerCount(),
spaces(indent), " new org.capnproto.StructSize((short)", structNode.getDataWordCount(), ", org.capnproto.FieldSize.", FIELD_SIZE_NAMES[(int)structNode.getPreferredListEncoding()], ");\n"),
",(short)", structNode.getPointerCount(),
", org.capnproto.FieldSize.", FIELD_SIZE_NAMES[(int)structNode.getPreferredListEncoding()], ");\n"),
kj::strTree(makeReaderDef(fullName, name, structNode.getDiscriminantCount() != 0, kj::strTree(makeReaderDef(fullName, name, structNode.getDiscriminantCount() != 0,
structNode.getDiscriminantOffset(), structNode.getDiscriminantOffset(),
KJ_MAP(f, fieldTexts) { return kj::mv(f.readerMethodDecls); }, KJ_MAP(f, fieldTexts) { return kj::mv(f.readerMethodDecls); },
indent + 1), indent + 1),
makeBuilderDef(fullName, name, structNode, makeBuilderDef(fullName, name, structNode,
KJ_MAP(f, fieldTexts) { return kj::mv(f.builderMethodDecls); }, KJ_MAP(f, fieldTexts) { return kj::mv(f.builderMethodDecls); },
indent + 1)), indent + 1)),
structNode.getDiscriminantCount() == 0 ? structNode.getDiscriminantCount() == 0 ?
kj::strTree() : kj::strTree() :
kj::strTree( kj::strTree(
spaces(indent), " public enum Which {\n", spaces(indent), " public enum Which {\n",
KJ_MAP(f, structNode.getFields()) { KJ_MAP(f, structNode.getFields()) {
if (hasDiscriminantValue(f)) { if (hasDiscriminantValue(f)) {
return kj::strTree(spaces(indent), " ", toUpperCase(f.getName()), ",\n"); return kj::strTree(spaces(indent), " ", toUpperCase(f.getName()), ",\n");
} else { } else {
return kj::strTree(); return kj::strTree();
} }
}, },
spaces(indent), " }\n"), spaces(indent), " }\n"),
KJ_MAP(n, nestedTypeDecls) { return kj::mv(n); }, KJ_MAP(n, nestedTypeDecls) { return kj::mv(n); },
spaces(indent), "}\n" spaces(indent), "}\n"
"\n", "\n",
"\n"), "\n"),
kj::strTree(), kj::strTree(),
kj::strTree() kj::strTree()
}; };
} }
@ -1572,10 +1572,8 @@ private:
kj::strTree(), kj::strTree(),
kj::strTree(), kj::strTree(),
kj::strTree(), kj::strTree(),
kj::strTree(), kj::strTree(),
kj::strTree(), kj::strTree(),
kj::strTree(), kj::strTree(),
}; };
} }
@ -1718,4 +1716,4 @@ private:
} // namespace } // namespace
} // namespace capnp } // namespace capnp
KJ_MAIN(capnp::CapnpcCppMain); KJ_MAIN(capnp::CapnpcJavaMain);

View file

@ -32,6 +32,10 @@ struct TestAllTypes {
dataField @13 : Data; dataField @13 : Data;
structField @14 : TestAllTypes; structField @14 : TestAllTypes;
enumField @15 : TestEnum; enumField @15 : TestEnum;
interfaceField @16 : Void; # TODO
# voidList @17 : List(Void);
# boolList @18 : List(Bool);
# ... # ...
} }