shuffling things

This commit is contained in:
David Renshaw 2014-05-10 16:42:59 -04:00
parent f61474fedf
commit fb296d1e86

View file

@ -1066,12 +1066,8 @@ private:
kj::StringTree makeReaderDef(kj::StringPtr fullName, kj::StringPtr unqualifiedParentType, kj::StringTree makeReaderDef(kj::StringPtr fullName, kj::StringPtr unqualifiedParentType,
bool isUnion, kj::Array<kj::StringTree>&& methodDecls) { bool isUnion, kj::Array<kj::StringTree>&& methodDecls) {
return kj::strTree( return kj::strTree(
"class ", fullName, "::Reader {\n" "public static class Reader {\n"
"public:\n" " public Reader(::capnp::_::StructReader base): _reader(base) {}\n"
" typedef ", unqualifiedParentType, " Reads;\n"
"\n"
" Reader() = default;\n"
" inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}\n"
"\n" "\n"
" inline ::capnp::MessageSize totalSize() const {\n" " inline ::capnp::MessageSize totalSize() const {\n"
" return _reader.totalSize().asPublic();\n" " return _reader.totalSize().asPublic();\n"
@ -1087,14 +1083,7 @@ private:
" friend struct ::capnp::_::PointerHelpers;\n" " friend struct ::capnp::_::PointerHelpers;\n"
" template <typename T, ::capnp::Kind k>\n" " template <typename T, ::capnp::Kind k>\n"
" friend struct ::capnp::List;\n" " friend struct ::capnp::List;\n"
" friend class ::capnp::MessageBuilder;\n"
" friend class ::capnp::Orphanage;\n"
" friend ::kj::StringTree KJ_STRINGIFY(", fullName, "::Reader reader);\n"
"};\n" "};\n"
"\n"
"inline ::kj::StringTree KJ_STRINGIFY(", fullName, "::Reader reader) {\n"
" return ::capnp::_::structString<", fullName, ">(reader._reader);\n"
"}\n"
"\n"); "\n");
} }
@ -1102,12 +1091,6 @@ private:
bool isUnion, kj::Array<kj::StringTree>&& methodDecls) { bool isUnion, kj::Array<kj::StringTree>&& methodDecls) {
return kj::strTree( return kj::strTree(
"class ", fullName, "::Builder {\n" "class ", fullName, "::Builder {\n"
"public:\n"
" typedef ", unqualifiedParentType, " Builds;\n"
"\n"
" Builder() = delete; // Deleted to discourage incorrect usage.\n"
" // You can explicitly initialize to nullptr instead.\n"
" inline Builder(decltype(nullptr)) {}\n"
" inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}\n" " inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}\n"
" inline operator Reader() const { return Reader(_builder.asReader()); }\n" " inline operator Reader() const { return Reader(_builder.asReader()); }\n"
" inline Reader asReader() const { return *this; }\n" " inline Reader asReader() const { return *this; }\n"
@ -1116,36 +1099,6 @@ private:
"\n", "\n",
isUnion ? kj::strTree(" inline Which which();\n") : kj::strTree(), isUnion ? kj::strTree(" inline Which which();\n") : kj::strTree(),
kj::mv(methodDecls), kj::mv(methodDecls),
"private:\n"
" ::capnp::_::StructBuilder _builder;\n"
" template <typename T, ::capnp::Kind k>\n"
" friend struct ::capnp::ToDynamic_;\n"
" friend class ::capnp::Orphanage;\n"
" friend ::kj::StringTree KJ_STRINGIFY(", fullName, "::Builder builder);\n"
"};\n"
"\n"
"inline ::kj::StringTree KJ_STRINGIFY(", fullName, "::Builder builder) {\n"
" return ::capnp::_::structString<", fullName, ">(builder._builder.asReader());\n"
"}\n"
"\n");
}
kj::StringTree makePipelineDef(kj::StringPtr fullName, kj::StringPtr unqualifiedParentType,
bool isUnion, kj::Array<kj::StringTree>&& methodDecls) {
return kj::strTree(
"class ", fullName, "::Pipeline {\n"
"public:\n"
" typedef ", unqualifiedParentType, " Pipelines;\n"
"\n"
" inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}\n"
" inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)\n"
" : _typeless(kj::mv(typeless)) {}\n"
"\n",
kj::mv(methodDecls),
"private:\n"
" ::capnp::AnyPointer::Pipeline _typeless;\n"
" template <typename T, ::capnp::Kind k>\n"
" friend struct ::capnp::ToDynamic_;\n"
"};\n" "};\n"
"\n"); "\n");
} }
@ -1166,6 +1119,8 @@ private:
kj::strTree( kj::strTree(
"public static class ", fullName, " {\n", "public static class ", fullName, " {\n",
kj::strTree(makeReaderDef(fullName, name, structNode.getDiscriminantCount() != 0,
KJ_MAP(f, fieldTexts) { return kj::mv(f.readerMethodDecls); })),
" class Reader;\n" " class Reader;\n"
" class Builder;\n" " class Builder;\n"
" class Pipeline;\n", " class Pipeline;\n",
@ -1184,12 +1139,9 @@ private:
"\n"), "\n"),
kj::strTree( kj::strTree(
makeReaderDef(fullName, name, structNode.getDiscriminantCount() != 0,
KJ_MAP(f, fieldTexts) { return kj::mv(f.readerMethodDecls); }),
makeBuilderDef(fullName, name, structNode.getDiscriminantCount() != 0, makeBuilderDef(fullName, name, structNode.getDiscriminantCount() != 0,
KJ_MAP(f, fieldTexts) { return kj::mv(f.builderMethodDecls); }), KJ_MAP(f, fieldTexts) { return kj::mv(f.builderMethodDecls); })),
makePipelineDef(fullName, name, structNode.getDiscriminantCount() != 0,
KJ_MAP(f, fieldTexts) { return kj::mv(f.pipelineMethodDecls); })),
kj::strTree( kj::strTree(
structNode.getDiscriminantCount() == 0 ? kj::strTree() : kj::strTree( structNode.getDiscriminantCount() == 0 ? kj::strTree() : kj::strTree(
@ -1630,7 +1582,7 @@ private:
"// Generated by Cap'n Proto compiler, DO NOT EDIT\n" "// Generated by Cap'n Proto compiler, DO NOT EDIT\n"
"// source: ", baseName(displayName), "\n" "// source: ", baseName(displayName), "\n"
"\n" "\n"
"//#include <capnp/generated-header-support.h>\n", "import capnp;\n",
hasInterfaces ? kj::strTree("#include <capnp/capability.h>\n") : kj::strTree(), hasInterfaces ? kj::strTree("#include <capnp/capability.h>\n") : kj::strTree(),
"\n" "\n"
"\n", "\n",