/** * Autogenerated by Thrift for src/module.thrift * * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING * @generated @nocommit */ #include #include "thrift/compiler/test/fixtures/mcpp2-compare/gen-cpp2/module_metadata.h" namespace apache { namespace thrift { namespace detail { namespace md { using ThriftMetadata = ::apache::thrift::metadata::ThriftMetadata; using ThriftPrimitiveType = ::apache::thrift::metadata::ThriftPrimitiveType; using ThriftType = ::apache::thrift::metadata::ThriftType; using ThriftService = ::apache::thrift::metadata::ThriftService; using ThriftServiceContext = ::apache::thrift::metadata::ThriftServiceContext; using ThriftFunctionGenerator = void (*)(ThriftMetadata&, ThriftService&); void EnumMetadata<::some::valid::ns::MyEnumA>::gen(ThriftMetadata& metadata) { auto res = metadata.enums_ref()->emplace("module.MyEnumA", ::apache::thrift::metadata::ThriftEnum{}); if (!res.second) { return; } ::apache::thrift::metadata::ThriftEnum& enum_metadata = res.first->second; enum_metadata.name_ref() = "module.MyEnumA"; using EnumTraits = TEnumTraits<::some::valid::ns::MyEnumA>; for (std::size_t i = 0; i < EnumTraits::size; ++i) { enum_metadata.elements_ref()->emplace(static_cast(EnumTraits::values[i]), EnumTraits::names[i].str()); } } void EnumMetadata<::some::valid::ns::AnnotatedEnum>::gen(ThriftMetadata& metadata) { auto res = metadata.enums_ref()->emplace("module.AnnotatedEnum", ::apache::thrift::metadata::ThriftEnum{}); if (!res.second) { return; } ::apache::thrift::metadata::ThriftEnum& enum_metadata = res.first->second; enum_metadata.name_ref() = "module.AnnotatedEnum"; using EnumTraits = TEnumTraits<::some::valid::ns::AnnotatedEnum>; for (std::size_t i = 0; i < EnumTraits::size; ++i) { enum_metadata.elements_ref()->emplace(static_cast(EnumTraits::values[i]), EnumTraits::names[i].str()); } } void EnumMetadata<::some::valid::ns::AnnotatedEnum2>::gen(ThriftMetadata& metadata) { auto res = metadata.enums_ref()->emplace("module.AnnotatedEnum2", ::apache::thrift::metadata::ThriftEnum{}); if (!res.second) { return; } ::apache::thrift::metadata::ThriftEnum& enum_metadata = res.first->second; enum_metadata.name_ref() = "module.AnnotatedEnum2"; using EnumTraits = TEnumTraits<::some::valid::ns::AnnotatedEnum2>; for (std::size_t i = 0; i < EnumTraits::size; ++i) { enum_metadata.elements_ref()->emplace(static_cast(EnumTraits::values[i]), EnumTraits::names[i].str()); } } void EnumMetadata<::some::valid::ns::MyEnumB>::gen(ThriftMetadata& metadata) { auto res = metadata.enums_ref()->emplace("module.MyEnumB", ::apache::thrift::metadata::ThriftEnum{}); if (!res.second) { return; } ::apache::thrift::metadata::ThriftEnum& enum_metadata = res.first->second; enum_metadata.name_ref() = "module.MyEnumB"; using EnumTraits = TEnumTraits<::some::valid::ns::MyEnumB>; for (std::size_t i = 0; i < EnumTraits::size; ++i) { enum_metadata.elements_ref()->emplace(static_cast(EnumTraits::values[i]), EnumTraits::names[i].str()); } } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::Empty>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.Empty", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_Empty = res.first->second; module_Empty.name_ref() = "module.Empty"; module_Empty.is_union_ref() = false; return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::ASimpleStruct>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.ASimpleStruct", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_ASimpleStruct = res.first->second; module_ASimpleStruct.name_ref() = "module.ASimpleStruct"; module_ASimpleStruct.is_union_ref() = false; static const EncodedThriftField module_ASimpleStruct_fields[] = { {1, "boolField", false, std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::vector{}}, }; for (const auto& f : module_ASimpleStruct_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_ASimpleStruct.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::ASimpleStructNoexcept>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.ASimpleStructNoexcept", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_ASimpleStructNoexcept = res.first->second; module_ASimpleStructNoexcept.name_ref() = "module.ASimpleStructNoexcept"; module_ASimpleStructNoexcept.is_union_ref() = false; static const EncodedThriftField module_ASimpleStructNoexcept_fields[] = { {1, "boolField", false, std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::vector{}}, }; for (const auto& f : module_ASimpleStructNoexcept_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_ASimpleStructNoexcept.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::MyStruct>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.MyStruct", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_MyStruct = res.first->second; module_MyStruct.name_ref() = "module.MyStruct"; module_MyStruct.is_union_ref() = false; static const EncodedThriftField module_MyStruct_fields[] = { {1, "MyBoolField", false, std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE), std::vector{}}, {2, "MyIntField", false, std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::vector{}}, {3, "MyStringField", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {4, "MyStringField2", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {5, "MyBinaryField", false, std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}}, {6, "MyBinaryField2", true, std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}}, {7, "MyBinaryField3", false, std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}}, {8, "MyBinaryListField4", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE)), std::vector{}}, {9, "MyMapEnumAndInt", false, std::make_unique(std::make_unique>("module.MyEnumA"), std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)), std::vector{}}, {10, "MyCustomField", false, std::make_unique("module.CustomProtocolType", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}}, {11, "MyOptCustomField", true, std::make_unique("module.CustomProtocolType", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}}, }; for (const auto& f : module_MyStruct_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_MyStruct.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::SimpleUnion>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.SimpleUnion", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_SimpleUnion = res.first->second; module_SimpleUnion.name_ref() = "module.SimpleUnion"; module_SimpleUnion.is_union_ref() = true; static const EncodedThriftField module_SimpleUnion_fields[] = { {7, "intValue", false, std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::vector{}}, {2, "stringValue", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, }; for (const auto& f : module_SimpleUnion_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_SimpleUnion.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::ComplexUnion>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.ComplexUnion", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_ComplexUnion = res.first->second; module_ComplexUnion.name_ref() = "module.ComplexUnion"; module_ComplexUnion.is_union_ref() = true; static const EncodedThriftField module_ComplexUnion_fields[] = { {1, "intValue", false, std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::vector{}}, {201, "opt_intValue", false, std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::vector{}}, {3, "stringValue", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {203, "opt_stringValue", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {4, "intValue2", false, std::make_unique(ThriftPrimitiveType::THRIFT_I16_TYPE), std::vector{}}, {6, "intValue3", false, std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}}, {7, "doubelValue", false, std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE), std::vector{}}, {8, "boolValue", false, std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE), std::vector{}}, {9, "union_list", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {10, "union_set", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE)), std::vector{}}, {11, "union_map", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {211, "opt_union_map", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {12, "enum_field", false, std::make_unique>("module.MyEnumA"), std::vector{}}, {13, "enum_container", false, std::make_unique(std::make_unique>("module.MyEnumA")), std::vector{}}, {14, "a_struct", false, std::make_unique>("module.MyStruct"), std::vector{}}, {15, "a_set_struct", false, std::make_unique(std::make_unique>("module.MyStruct")), std::vector{}}, {16, "a_union", false, std::make_unique>("module.SimpleUnion"), std::vector{}}, {216, "opt_a_union", false, std::make_unique>("module.SimpleUnion"), std::vector{}}, {17, "a_union_list", false, std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{}}, {18, "a_union_typedef", false, std::make_unique("module.unionTypeDef", std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{}), std::vector{}}, {19, "a_union_typedef_list", false, std::make_unique(std::make_unique("module.unionTypeDef", std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{})), std::vector{}}, {20, "MyBinaryField", false, std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}}, {21, "MyBinaryField2", false, std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}}, {23, "MyBinaryListField4", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE)), std::vector{}}, {24, "ref_field", false, std::make_unique>("module.MyStruct"), std::vector{}}, {25, "ref_field2", false, std::make_unique>("module.MyStruct"), std::vector{}}, {26, "excp_field", false, std::make_unique("module.AnException", std::make_unique>("module.AnException"), std::vector{}), std::vector{}}, {27, "MyCustomField", false, std::make_unique("module.CustomProtocolType", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}}, }; for (const auto& f : module_ComplexUnion_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_ComplexUnion.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::AnException>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.AnException", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_AnException = res.first->second; module_AnException.name_ref() = "module.AnException"; module_AnException.is_union_ref() = false; static const EncodedThriftField module_AnException_fields[] = { {1, "code", false, std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}}, {101, "req_code", false, std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}}, {2, "message2", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {102, "req_message", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {3, "exception_list", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {4, "exception_set", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE)), std::vector{}}, {5, "exception_map", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {105, "req_exception_map", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {6, "enum_field", false, std::make_unique>("module.MyEnumA"), std::vector{}}, {7, "enum_container", false, std::make_unique(std::make_unique>("module.MyEnumA")), std::vector{}}, {8, "a_struct", false, std::make_unique>("module.MyStruct"), std::vector{}}, {9, "a_set_struct", false, std::make_unique(std::make_unique>("module.MyStruct")), std::vector{}}, {10, "a_union_list", false, std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{}}, {11, "union_typedef", false, std::make_unique("module.unionTypeDef", std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{}), std::vector{}}, {19, "a_union_typedef_list", false, std::make_unique(std::make_unique("module.unionTypeDef", std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{})), std::vector{}}, {20, "MyCustomField", false, std::make_unique("module.CustomProtocolType", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}}, {21, "MyOptCustomField", true, std::make_unique("module.CustomProtocolType", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}}, }; for (const auto& f : module_AnException_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_AnException.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::AnotherException>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.AnotherException", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_AnotherException = res.first->second; module_AnotherException.name_ref() = "module.AnotherException"; module_AnotherException.is_union_ref() = false; static const EncodedThriftField module_AnotherException_fields[] = { {1, "code", false, std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}}, {101, "req_code", false, std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}}, {2, "message", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, }; for (const auto& f : module_AnotherException_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_AnotherException.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::containerStruct>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.containerStruct", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_containerStruct = res.first->second; module_containerStruct.name_ref() = "module.containerStruct"; module_containerStruct.is_union_ref() = false; static const EncodedThriftField module_containerStruct_fields[] = { {1, "fieldA", false, std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE), std::vector{}}, {101, "req_fieldA", false, std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE), std::vector{}}, {201, "opt_fieldA", true, std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE), std::vector{}}, {2, "fieldB", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE)), std::vector{}}, {102, "req_fieldB", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE)), std::vector{}}, {202, "opt_fieldB", true, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE)), std::vector{}}, {3, "fieldC", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {103, "req_fieldC", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {203, "opt_fieldC", true, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {4, "fieldD", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {5, "fieldE", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {105, "req_fieldE", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {205, "opt_fieldE", true, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {6, "fieldF", false, std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))), std::vector{}}, {7, "fieldG", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)))), std::vector{}}, {8, "fieldH", false, std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))), std::vector{}}, {9, "fieldI", false, std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE), std::vector{}}, {10, "fieldJ", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))), std::vector{}}, {11, "fieldK", false, std::make_unique(std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))))), std::vector{}}, {12, "fieldL", false, std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE)))), std::vector{}}, {13, "fieldM", false, std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))), std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE))), std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE))), std::vector{}}, {14, "fieldN", false, std::make_unique("module.simpleTypeDef", std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}), std::vector{}}, {15, "fieldO", false, std::make_unique("module.complexStructTypeDef", std::make_unique(std::make_unique(std::make_unique>("module.Empty"), std::make_unique>("module.MyStruct"))), std::vector{}), std::vector{}}, {16, "fieldP", false, std::make_unique(std::make_unique("module.mostComplexTypeDef", std::make_unique(std::make_unique("module.complexStructTypeDef", std::make_unique(std::make_unique(std::make_unique>("module.Empty"), std::make_unique>("module.MyStruct"))), std::vector{})), std::vector{})), std::vector{}}, {17, "fieldQ", false, std::make_unique>("module.MyEnumA"), std::vector{}}, {18, "fieldR", false, std::make_unique>("module.MyEnumA"), std::vector{}}, {118, "req_fieldR", false, std::make_unique>("module.MyEnumA"), std::vector{}}, {218, "opt_fieldR", true, std::make_unique>("module.MyEnumA"), std::vector{}}, {19, "fieldS", false, std::make_unique>("module.MyEnumA"), std::vector{}}, {21, "fieldT", false, std::make_unique(std::make_unique>("module.MyEnumA")), std::vector{}}, {22, "fieldU", false, std::make_unique(std::make_unique>("module.MyEnumA")), std::vector{}}, {23, "fieldV", false, std::make_unique>("module.MyStruct"), std::vector{}}, {123, "req_fieldV", false, std::make_unique>("module.MyStruct"), std::vector{}}, {223, "opt_fieldV", true, std::make_unique>("module.MyStruct"), std::vector{}}, {24, "fieldW", false, std::make_unique(std::make_unique>("module.MyStruct")), std::vector{}}, {25, "fieldX", false, std::make_unique>("module.ComplexUnion"), std::vector{}}, {125, "req_fieldX", false, std::make_unique>("module.ComplexUnion"), std::vector{}}, {225, "opt_fieldX", true, std::make_unique>("module.ComplexUnion"), std::vector{}}, {26, "fieldY", false, std::make_unique(std::make_unique>("module.ComplexUnion")), std::vector{}}, {27, "fieldZ", false, std::make_unique("module.unionTypeDef", std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{}), std::vector{}}, {28, "fieldAA", false, std::make_unique(std::make_unique("module.unionTypeDef", std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{})), std::vector{}}, {29, "fieldAB", false, std::make_unique(std::make_unique("module.IndirectionB", std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE), std::vector{}), std::make_unique("module.IndirectionC", std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{})), std::vector{}}, {30, "fieldAC", false, std::make_unique("module.MyEnumB", std::make_unique>("module.MyEnumB"), std::vector{}), std::vector{}}, {31, "fieldAD", false, std::make_unique>("includes.AnEnum"), std::vector{}}, {32, "fieldAE", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {33, "fieldSD", false, std::make_unique("module.IndirectionD", std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}), std::vector{}}, }; for (const auto& f : module_containerStruct_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_containerStruct.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::MyIncludedStruct>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.MyIncludedStruct", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_MyIncludedStruct = res.first->second; module_MyIncludedStruct.name_ref() = "module.MyIncludedStruct"; module_MyIncludedStruct.is_union_ref() = false; static const EncodedThriftField module_MyIncludedStruct_fields[] = { {1, "MyIncludedInt", false, std::make_unique("includes.IncludedInt64", std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::vector{}), std::vector{}}, {2, "MyIncludedStruct", false, std::make_unique("module.AStruct", std::make_unique>("includes.AStruct"), std::vector{}), std::vector{}}, {3, "ARefField", false, std::make_unique("module.AStruct", std::make_unique>("includes.AStruct"), std::vector{}), std::vector{}}, {4, "ARequiredField", false, std::make_unique("module.AStruct", std::make_unique>("includes.AStruct"), std::vector{}), std::vector{}}, }; for (const auto& f : module_MyIncludedStruct_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_MyIncludedStruct.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::AnnotatedStruct>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.AnnotatedStruct", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_AnnotatedStruct = res.first->second; module_AnnotatedStruct.name_ref() = "module.AnnotatedStruct"; module_AnnotatedStruct.is_union_ref() = false; static const EncodedThriftField module_AnnotatedStruct_fields[] = { {1, "no_annotation", false, std::make_unique>("module.containerStruct"), std::vector{}}, {2, "cpp_unique_ref", false, std::make_unique>("module.containerStruct"), std::vector{}}, {3, "cpp2_unique_ref", false, std::make_unique>("module.containerStruct"), std::vector{}}, {4, "container_with_ref", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE))), std::vector{}}, {5, "req_cpp_unique_ref", false, std::make_unique>("module.containerStruct"), std::vector{}}, {6, "req_cpp2_unique_ref", false, std::make_unique>("module.containerStruct"), std::vector{}}, {7, "req_container_with_ref", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)), std::vector{}}, {8, "opt_cpp_unique_ref", true, std::make_unique>("module.containerStruct"), std::vector{}}, {9, "opt_cpp2_unique_ref", true, std::make_unique>("module.containerStruct"), std::vector{}}, {10, "opt_container_with_ref", true, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {11, "ref_type_unique", false, std::make_unique>("module.containerStruct"), std::vector{}}, {12, "ref_type_shared", false, std::make_unique>("module.containerStruct"), std::vector{}}, {13, "ref_type_const", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE))), std::vector{}}, {14, "req_ref_type_shared", false, std::make_unique>("module.containerStruct"), std::vector{}}, {15, "req_ref_type_const", false, std::make_unique>("module.containerStruct"), std::vector{}}, {16, "req_ref_type_unique", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)), std::vector{}}, {17, "opt_ref_type_const", true, std::make_unique>("module.containerStruct"), std::vector{}}, {18, "opt_ref_type_unique", true, std::make_unique>("module.containerStruct"), std::vector{}}, {19, "opt_ref_type_shared", true, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {20, "base_type", false, std::make_unique("module.CppFakeI32", std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}), std::vector{}}, {21, "list_type", false, std::make_unique("module.FollySmallVectorI64", std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE)), std::vector{}), std::vector{}}, {22, "set_type", false, std::make_unique("module.SortedVectorSetString", std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)), std::vector{}), std::vector{}}, {23, "map_type", false, std::make_unique("module.FakeMap", std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE)), std::vector{}), std::vector{}}, {24, "map_struct_type", false, std::make_unique("module.UnorderedMapStruct", std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique>("module.containerStruct")), std::vector{}), std::vector{}}, {25, "iobuf_type", false, std::make_unique("module.IOBuf", std::make_unique("module.IOBuf", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}), std::vector{}}, {26, "iobuf_ptr", false, std::make_unique("module.IOBufPtr", std::make_unique("module.IOBufPtr", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}), std::vector{}}, {27, "list_i32_template", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {28, "list_string_template", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)), std::vector{}}, {29, "set_template", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)), std::vector{}}, {30, "map_template", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)), std::vector{}}, {31, "typedef_list_template", false, std::make_unique("module.std_list", std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}), std::vector{}}, {32, "typedef_deque_template", false, std::make_unique("module.std_deque", std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)), std::vector{}), std::vector{}}, {33, "typedef_set_template", false, std::make_unique("module.folly_set", std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)), std::vector{}), std::vector{}}, {34, "typedef_map_template", false, std::make_unique("module.folly_map", std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)), std::vector{}), std::vector{}}, {35, "indirection_a", false, std::make_unique("module.IndirectionA", std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::vector{}), std::vector{}}, {36, "indirection_b", false, std::make_unique(std::make_unique("module.IndirectionB", std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE), std::vector{})), std::vector{}}, {37, "indirection_c", false, std::make_unique(std::make_unique("module.IndirectionC", std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{})), std::vector{}}, {38, "iobuf_type_val", false, std::make_unique("module.IOBuf", std::make_unique("module.IOBuf", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}), std::vector{}}, {39, "iobuf_ptr_val", false, std::make_unique("module.IOBufPtr", std::make_unique("module.IOBufPtr", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}), std::vector{}}, {40, "struct_struct", false, std::make_unique>("module.containerStruct"), std::vector{}}, }; for (const auto& f : module_AnnotatedStruct_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_AnnotatedStruct.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::ComplexContainerStruct>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.ComplexContainerStruct", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_ComplexContainerStruct = res.first->second; module_ComplexContainerStruct.name_ref() = "module.ComplexContainerStruct"; module_ComplexContainerStruct.is_union_ref() = false; static const EncodedThriftField module_ComplexContainerStruct_fields[] = { {1, "map_of_iobufs", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique("module.IOBuf", std::make_unique("module.IOBuf", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{})), std::vector{}}, {2, "map_of_iobuf_ptrs", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique("module.IOBufPtr", std::make_unique("module.IOBufPtr", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{})), std::vector{}}, }; for (const auto& f : module_ComplexContainerStruct_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_ComplexContainerStruct.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::FloatStruct>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.FloatStruct", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_FloatStruct = res.first->second; module_FloatStruct.name_ref() = "module.FloatStruct"; module_FloatStruct.is_union_ref() = false; static const EncodedThriftField module_FloatStruct_fields[] = { {1, "floatField", false, std::make_unique(ThriftPrimitiveType::THRIFT_FLOAT_TYPE), std::vector{}}, {2, "doubleField", false, std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE), std::vector{}}, }; for (const auto& f : module_FloatStruct_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_FloatStruct.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::FloatUnion>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.FloatUnion", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_FloatUnion = res.first->second; module_FloatUnion.name_ref() = "module.FloatUnion"; module_FloatUnion.is_union_ref() = true; static const EncodedThriftField module_FloatUnion_fields[] = { {1, "floatSide", false, std::make_unique(ThriftPrimitiveType::THRIFT_FLOAT_TYPE), std::vector{}}, {2, "doubleSide", false, std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE), std::vector{}}, }; for (const auto& f : module_FloatUnion_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_FloatUnion.fields_ref()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::some::valid::ns::AllRequiredNoExceptMoveCtrStruct>::gen(ThriftMetadata& metadata) { auto res = metadata.structs_ref()->emplace("module.AllRequiredNoExceptMoveCtrStruct", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_AllRequiredNoExceptMoveCtrStruct = res.first->second; module_AllRequiredNoExceptMoveCtrStruct.name_ref() = "module.AllRequiredNoExceptMoveCtrStruct"; module_AllRequiredNoExceptMoveCtrStruct.is_union_ref() = false; static const EncodedThriftField module_AllRequiredNoExceptMoveCtrStruct_fields[] = { {1, "intField", false, std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::vector{}}, }; for (const auto& f : module_AllRequiredNoExceptMoveCtrStruct_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); field.structured_annotations_ref() = f.structured_annotations; module_AllRequiredNoExceptMoveCtrStruct.fields_ref()->push_back(std::move(field)); } return res.first->second; } void ExceptionMetadata<::some::valid::ns::AnException>::gen(ThriftMetadata& metadata) { auto res = metadata.exceptions_ref()->emplace("module.AnException", ::apache::thrift::metadata::ThriftException{}); if (!res.second) { return; } ::apache::thrift::metadata::ThriftException& module_AnException = res.first->second; module_AnException.name_ref() = "module.AnException"; static const EncodedThriftField module_AnException_fields[] = { {1, "code", false, std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}}, {101, "req_code", false, std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}}, {2, "message2", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {102, "req_message", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, {3, "exception_list", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {4, "exception_set", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE)), std::vector{}}, {5, "exception_map", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {105, "req_exception_map", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{}}, {6, "enum_field", false, std::make_unique>("module.MyEnumA"), std::vector{}}, {7, "enum_container", false, std::make_unique(std::make_unique>("module.MyEnumA")), std::vector{}}, {8, "a_struct", false, std::make_unique>("module.MyStruct"), std::vector{}}, {9, "a_set_struct", false, std::make_unique(std::make_unique>("module.MyStruct")), std::vector{}}, {10, "a_union_list", false, std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{}}, {11, "union_typedef", false, std::make_unique("module.unionTypeDef", std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{}), std::vector{}}, {19, "a_union_typedef_list", false, std::make_unique(std::make_unique("module.unionTypeDef", std::make_unique(std::make_unique>("module.SimpleUnion")), std::vector{})), std::vector{}}, {20, "MyCustomField", false, std::make_unique("module.CustomProtocolType", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}}, {21, "MyOptCustomField", true, std::make_unique("module.CustomProtocolType", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}}, }; for (const auto& f : module_AnException_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); module_AnException.fields_ref()->push_back(std::move(field)); } } void ExceptionMetadata<::some::valid::ns::AnotherException>::gen(ThriftMetadata& metadata) { auto res = metadata.exceptions_ref()->emplace("module.AnotherException", ::apache::thrift::metadata::ThriftException{}); if (!res.second) { return; } ::apache::thrift::metadata::ThriftException& module_AnotherException = res.first->second; module_AnotherException.name_ref() = "module.AnotherException"; static const EncodedThriftField module_AnotherException_fields[] = { {1, "code", false, std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}}, {101, "req_code", false, std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}}, {2, "message", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{}}, }; for (const auto& f : module_AnotherException_fields) { ::apache::thrift::metadata::ThriftField field; field.id_ref() = f.id; field.name_ref() = f.name; field.is_optional_ref() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata); module_AnotherException.fields_ref()->push_back(std::move(field)); } } void ServiceMetadata<::some::valid::ns::EmptyServiceSvIf>::gen(::apache::thrift::metadata::ThriftServiceMetadataResponse& response) { const ::apache::thrift::metadata::ThriftServiceContextRef* self = genRecurse(*response.metadata_ref(), *response.services_ref()); DCHECK(self != nullptr); // TODO(praihan): Remove ThriftServiceContext from response. But in the meantime, we need to fill the field with the result of looking up in ThriftMetadata. ::apache::thrift::metadata::ThriftServiceContext context; context.module_ref() = *self->module_ref(); context.service_info_ref() = response.metadata_ref()->services_ref()->at(*self->service_name_ref()); response.context_ref() = std::move(context); } const ThriftServiceContextRef* ServiceMetadata<::some::valid::ns::EmptyServiceSvIf>::genRecurse(ThriftMetadata& metadata, std::vector& services) { (void) metadata; ::apache::thrift::metadata::ThriftService module_EmptyService; module_EmptyService.name_ref() = "module.EmptyService"; // We need to keep the index around because a reference or iterator could be invalidated. auto selfIndex = services.size(); services.emplace_back(); ThriftServiceContextRef& context = services[selfIndex]; metadata.services_ref()->emplace("module.EmptyService", std::move(module_EmptyService)); context.service_name_ref() = "module.EmptyService"; ::apache::thrift::metadata::ThriftModuleContext module; module.name_ref() = "module"; context.module_ref() = std::move(module); return &context; } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_noReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "noReturn"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_boolReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "boolReturn"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_i16Return(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "i16Return"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_I16_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_i32Return(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "i32Return"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_i64Return(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "i64Return"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_floatReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "floatReturn"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_FLOAT_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_doubleReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "doubleReturn"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_stringReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "stringReturn"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_binaryReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "binaryReturn"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_mapReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "mapReturn"; auto func_ret_type = std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE)); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_simpleTypedefReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "simpleTypedefReturn"; auto func_ret_type = std::make_unique("module.simpleTypeDef", std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_complexTypedefReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "complexTypedefReturn"; auto func_ret_type = std::make_unique("module.complexStructTypeDef", std::make_unique(std::make_unique(std::make_unique>("module.Empty"), std::make_unique>("module.MyStruct"))), std::vector{}); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_list_mostComplexTypedefReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "list_mostComplexTypedefReturn"; auto func_ret_type = std::make_unique(std::make_unique("module.mostComplexTypeDef", std::make_unique(std::make_unique("module.complexStructTypeDef", std::make_unique(std::make_unique(std::make_unique>("module.Empty"), std::make_unique>("module.MyStruct"))), std::vector{})), std::vector{})); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_enumReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "enumReturn"; auto func_ret_type = std::make_unique>("module.MyEnumA"); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_list_EnumReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "list_EnumReturn"; auto func_ret_type = std::make_unique(std::make_unique>("module.MyEnumA")); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_structReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "structReturn"; auto func_ret_type = std::make_unique>("module.MyStruct"); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_set_StructReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "set_StructReturn"; auto func_ret_type = std::make_unique(std::make_unique>("module.MyStruct")); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_unionReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "unionReturn"; auto func_ret_type = std::make_unique>("module.ComplexUnion"); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_list_UnionReturn(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "list_UnionReturn"; auto func_ret_type = std::make_unique(std::make_unique>("module.ComplexUnion")); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_readDataEb(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "readDataEb"; auto func_ret_type = std::make_unique("module.IOBuf", std::make_unique("module.IOBuf", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ReturnService_readDataEb_size_1; module_ReturnService_readDataEb_size_1.id_ref() = 1; module_ReturnService_readDataEb_size_1.name_ref() = "size"; module_ReturnService_readDataEb_size_1.is_optional_ref() = false; auto module_ReturnService_readDataEb_size_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE); module_ReturnService_readDataEb_size_1_type->writeAndGenType(*module_ReturnService_readDataEb_size_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ReturnService_readDataEb_size_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_readData(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "readData"; auto func_ret_type = std::make_unique("module.IOBufPtr", std::make_unique("module.IOBufPtr", std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE), std::vector{}), std::vector{}); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ReturnService_readData_size_1; module_ReturnService_readData_size_1.id_ref() = 1; module_ReturnService_readData_size_1.name_ref() = "size"; module_ReturnService_readData_size_1.is_optional_ref() = false; auto module_ReturnService_readData_size_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE); module_ReturnService_readData_size_1_type->writeAndGenType(*module_ReturnService_readData_size_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ReturnService_readData_size_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen(::apache::thrift::metadata::ThriftServiceMetadataResponse& response) { const ::apache::thrift::metadata::ThriftServiceContextRef* self = genRecurse(*response.metadata_ref(), *response.services_ref()); DCHECK(self != nullptr); // TODO(praihan): Remove ThriftServiceContext from response. But in the meantime, we need to fill the field with the result of looking up in ThriftMetadata. ::apache::thrift::metadata::ThriftServiceContext context; context.module_ref() = *self->module_ref(); context.service_info_ref() = response.metadata_ref()->services_ref()->at(*self->service_name_ref()); response.context_ref() = std::move(context); } const ThriftServiceContextRef* ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::genRecurse(ThriftMetadata& metadata, std::vector& services) { (void) metadata; ::apache::thrift::metadata::ThriftService module_ReturnService; module_ReturnService.name_ref() = "module.ReturnService"; static const ThriftFunctionGenerator functions[] = { ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_noReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_boolReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_i16Return, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_i32Return, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_i64Return, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_floatReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_doubleReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_stringReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_binaryReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_mapReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_simpleTypedefReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_complexTypedefReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_list_mostComplexTypedefReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_enumReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_list_EnumReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_structReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_set_StructReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_unionReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_list_UnionReturn, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_readDataEb, ServiceMetadata<::some::valid::ns::ReturnServiceSvIf>::gen_readData, }; for (auto& function_gen : functions) { function_gen(metadata, module_ReturnService); } // We need to keep the index around because a reference or iterator could be invalidated. auto selfIndex = services.size(); services.emplace_back(); ThriftServiceContextRef& context = services[selfIndex]; metadata.services_ref()->emplace("module.ReturnService", std::move(module_ReturnService)); context.service_name_ref() = "module.ReturnService"; ::apache::thrift::metadata::ThriftModuleContext module; module.name_ref() = "module"; context.module_ref() = std::move(module); return &context; } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_i16_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "void_ret_i16_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_void_ret_i16_param_param1_1; module_ParamService_void_ret_i16_param_param1_1.id_ref() = 1; module_ParamService_void_ret_i16_param_param1_1.name_ref() = "param1"; module_ParamService_void_ret_i16_param_param1_1.is_optional_ref() = false; auto module_ParamService_void_ret_i16_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_I16_TYPE); module_ParamService_void_ret_i16_param_param1_1_type->writeAndGenType(*module_ParamService_void_ret_i16_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_void_ret_i16_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_byte_i16_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "void_ret_byte_i16_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_void_ret_byte_i16_param_param1_1; module_ParamService_void_ret_byte_i16_param_param1_1.id_ref() = 1; module_ParamService_void_ret_byte_i16_param_param1_1.name_ref() = "param1"; module_ParamService_void_ret_byte_i16_param_param1_1.is_optional_ref() = false; auto module_ParamService_void_ret_byte_i16_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_BYTE_TYPE); module_ParamService_void_ret_byte_i16_param_param1_1_type->writeAndGenType(*module_ParamService_void_ret_byte_i16_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_void_ret_byte_i16_param_param1_1)); ::apache::thrift::metadata::ThriftField module_ParamService_void_ret_byte_i16_param_param2_2; module_ParamService_void_ret_byte_i16_param_param2_2.id_ref() = 2; module_ParamService_void_ret_byte_i16_param_param2_2.name_ref() = "param2"; module_ParamService_void_ret_byte_i16_param_param2_2.is_optional_ref() = false; auto module_ParamService_void_ret_byte_i16_param_param2_2_type = std::make_unique(ThriftPrimitiveType::THRIFT_I16_TYPE); module_ParamService_void_ret_byte_i16_param_param2_2_type->writeAndGenType(*module_ParamService_void_ret_byte_i16_param_param2_2.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_void_ret_byte_i16_param_param2_2)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_map_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "void_ret_map_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_void_ret_map_param_param1_1; module_ParamService_void_ret_map_param_param1_1.id_ref() = 1; module_ParamService_void_ret_map_param_param1_1.name_ref() = "param1"; module_ParamService_void_ret_map_param_param1_1.is_optional_ref() = false; auto module_ParamService_void_ret_map_param_param1_1_type = std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE)); module_ParamService_void_ret_map_param_param1_1_type->writeAndGenType(*module_ParamService_void_ret_map_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_void_ret_map_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_map_setlist_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "void_ret_map_setlist_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_void_ret_map_setlist_param_param1_1; module_ParamService_void_ret_map_setlist_param_param1_1.id_ref() = 1; module_ParamService_void_ret_map_setlist_param_param1_1.name_ref() = "param1"; module_ParamService_void_ret_map_setlist_param_param1_1.is_optional_ref() = false; auto module_ParamService_void_ret_map_setlist_param_param1_1_type = std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE)); module_ParamService_void_ret_map_setlist_param_param1_1_type->writeAndGenType(*module_ParamService_void_ret_map_setlist_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_void_ret_map_setlist_param_param1_1)); ::apache::thrift::metadata::ThriftField module_ParamService_void_ret_map_setlist_param_param2_3; module_ParamService_void_ret_map_setlist_param_param2_3.id_ref() = 3; module_ParamService_void_ret_map_setlist_param_param2_3.name_ref() = "param2"; module_ParamService_void_ret_map_setlist_param_param2_3.is_optional_ref() = false; auto module_ParamService_void_ret_map_setlist_param_param2_3_type = std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE))); module_ParamService_void_ret_map_setlist_param_param2_3_type->writeAndGenType(*module_ParamService_void_ret_map_setlist_param_param2_3.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_void_ret_map_setlist_param_param2_3)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_map_typedef_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "void_ret_map_typedef_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_void_ret_map_typedef_param_param1_1; module_ParamService_void_ret_map_typedef_param_param1_1.id_ref() = 1; module_ParamService_void_ret_map_typedef_param_param1_1.name_ref() = "param1"; module_ParamService_void_ret_map_typedef_param_param1_1.is_optional_ref() = false; auto module_ParamService_void_ret_map_typedef_param_param1_1_type = std::make_unique("module.simpleTypeDef", std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}); module_ParamService_void_ret_map_typedef_param_param1_1_type->writeAndGenType(*module_ParamService_void_ret_map_typedef_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_void_ret_map_typedef_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_enum_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "void_ret_enum_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_void_ret_enum_param_param1_1; module_ParamService_void_ret_enum_param_param1_1.id_ref() = 1; module_ParamService_void_ret_enum_param_param1_1.name_ref() = "param1"; module_ParamService_void_ret_enum_param_param1_1.is_optional_ref() = false; auto module_ParamService_void_ret_enum_param_param1_1_type = std::make_unique>("module.MyEnumA"); module_ParamService_void_ret_enum_param_param1_1_type->writeAndGenType(*module_ParamService_void_ret_enum_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_void_ret_enum_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_struct_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "void_ret_struct_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_void_ret_struct_param_param1_1; module_ParamService_void_ret_struct_param_param1_1.id_ref() = 1; module_ParamService_void_ret_struct_param_param1_1.name_ref() = "param1"; module_ParamService_void_ret_struct_param_param1_1.is_optional_ref() = false; auto module_ParamService_void_ret_struct_param_param1_1_type = std::make_unique>("module.MyStruct"); module_ParamService_void_ret_struct_param_param1_1_type->writeAndGenType(*module_ParamService_void_ret_struct_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_void_ret_struct_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_listunion_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "void_ret_listunion_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_void_ret_listunion_param_param1_1; module_ParamService_void_ret_listunion_param_param1_1.id_ref() = 1; module_ParamService_void_ret_listunion_param_param1_1.name_ref() = "param1"; module_ParamService_void_ret_listunion_param_param1_1.is_optional_ref() = false; auto module_ParamService_void_ret_listunion_param_param1_1_type = std::make_unique(std::make_unique>("module.ComplexUnion")); module_ParamService_void_ret_listunion_param_param1_1_type->writeAndGenType(*module_ParamService_void_ret_listunion_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_void_ret_listunion_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_bool_ret_i32_i64_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "bool_ret_i32_i64_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_bool_ret_i32_i64_param_param1_1; module_ParamService_bool_ret_i32_i64_param_param1_1.id_ref() = 1; module_ParamService_bool_ret_i32_i64_param_param1_1.name_ref() = "param1"; module_ParamService_bool_ret_i32_i64_param_param1_1.is_optional_ref() = false; auto module_ParamService_bool_ret_i32_i64_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE); module_ParamService_bool_ret_i32_i64_param_param1_1_type->writeAndGenType(*module_ParamService_bool_ret_i32_i64_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_bool_ret_i32_i64_param_param1_1)); ::apache::thrift::metadata::ThriftField module_ParamService_bool_ret_i32_i64_param_param2_3; module_ParamService_bool_ret_i32_i64_param_param2_3.id_ref() = 3; module_ParamService_bool_ret_i32_i64_param_param2_3.name_ref() = "param2"; module_ParamService_bool_ret_i32_i64_param_param2_3.is_optional_ref() = false; auto module_ParamService_bool_ret_i32_i64_param_param2_3_type = std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE); module_ParamService_bool_ret_i32_i64_param_param2_3_type->writeAndGenType(*module_ParamService_bool_ret_i32_i64_param_param2_3.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_bool_ret_i32_i64_param_param2_3)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_bool_ret_map_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "bool_ret_map_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_bool_ret_map_param_param1_1; module_ParamService_bool_ret_map_param_param1_1.id_ref() = 1; module_ParamService_bool_ret_map_param_param1_1.name_ref() = "param1"; module_ParamService_bool_ret_map_param_param1_1.is_optional_ref() = false; auto module_ParamService_bool_ret_map_param_param1_1_type = std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE)); module_ParamService_bool_ret_map_param_param1_1_type->writeAndGenType(*module_ParamService_bool_ret_map_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_bool_ret_map_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_bool_ret_union_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "bool_ret_union_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_bool_ret_union_param_param1_1; module_ParamService_bool_ret_union_param_param1_1.id_ref() = 1; module_ParamService_bool_ret_union_param_param1_1.name_ref() = "param1"; module_ParamService_bool_ret_union_param_param1_1.is_optional_ref() = false; auto module_ParamService_bool_ret_union_param_param1_1_type = std::make_unique>("module.ComplexUnion"); module_ParamService_bool_ret_union_param_param1_1_type->writeAndGenType(*module_ParamService_bool_ret_union_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_bool_ret_union_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_i64_ret_float_double_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "i64_ret_float_double_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_i64_ret_float_double_param_param1_1; module_ParamService_i64_ret_float_double_param_param1_1.id_ref() = 1; module_ParamService_i64_ret_float_double_param_param1_1.name_ref() = "param1"; module_ParamService_i64_ret_float_double_param_param1_1.is_optional_ref() = false; auto module_ParamService_i64_ret_float_double_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_FLOAT_TYPE); module_ParamService_i64_ret_float_double_param_param1_1_type->writeAndGenType(*module_ParamService_i64_ret_float_double_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_i64_ret_float_double_param_param1_1)); ::apache::thrift::metadata::ThriftField module_ParamService_i64_ret_float_double_param_param2_3; module_ParamService_i64_ret_float_double_param_param2_3.id_ref() = 3; module_ParamService_i64_ret_float_double_param_param2_3.name_ref() = "param2"; module_ParamService_i64_ret_float_double_param_param2_3.is_optional_ref() = false; auto module_ParamService_i64_ret_float_double_param_param2_3_type = std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE); module_ParamService_i64_ret_float_double_param_param2_3_type->writeAndGenType(*module_ParamService_i64_ret_float_double_param_param2_3.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_i64_ret_float_double_param_param2_3)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_i64_ret_string_typedef_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "i64_ret_string_typedef_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_i64_ret_string_typedef_param_param1_1; module_ParamService_i64_ret_string_typedef_param_param1_1.id_ref() = 1; module_ParamService_i64_ret_string_typedef_param_param1_1.name_ref() = "param1"; module_ParamService_i64_ret_string_typedef_param_param1_1.is_optional_ref() = false; auto module_ParamService_i64_ret_string_typedef_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE); module_ParamService_i64_ret_string_typedef_param_param1_1_type->writeAndGenType(*module_ParamService_i64_ret_string_typedef_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_i64_ret_string_typedef_param_param1_1)); ::apache::thrift::metadata::ThriftField module_ParamService_i64_ret_string_typedef_param_param2_3; module_ParamService_i64_ret_string_typedef_param_param2_3.id_ref() = 3; module_ParamService_i64_ret_string_typedef_param_param2_3.name_ref() = "param2"; module_ParamService_i64_ret_string_typedef_param_param2_3.is_optional_ref() = false; auto module_ParamService_i64_ret_string_typedef_param_param2_3_type = std::make_unique(std::make_unique("module.mostComplexTypeDef", std::make_unique(std::make_unique("module.complexStructTypeDef", std::make_unique(std::make_unique(std::make_unique>("module.Empty"), std::make_unique>("module.MyStruct"))), std::vector{})), std::vector{})); module_ParamService_i64_ret_string_typedef_param_param2_3_type->writeAndGenType(*module_ParamService_i64_ret_string_typedef_param_param2_3.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_i64_ret_string_typedef_param_param2_3)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_i64_ret_i32_i32_i32_i32_i32_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "i64_ret_i32_i32_i32_i32_i32_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param1_1; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param1_1.id_ref() = 1; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param1_1.name_ref() = "param1"; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param1_1.is_optional_ref() = false; auto module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE); module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param1_1_type->writeAndGenType(*module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param1_1)); ::apache::thrift::metadata::ThriftField module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param2_2; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param2_2.id_ref() = 2; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param2_2.name_ref() = "param2"; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param2_2.is_optional_ref() = false; auto module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param2_2_type = std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE); module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param2_2_type->writeAndGenType(*module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param2_2.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param2_2)); ::apache::thrift::metadata::ThriftField module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param3_3; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param3_3.id_ref() = 3; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param3_3.name_ref() = "param3"; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param3_3.is_optional_ref() = false; auto module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param3_3_type = std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE); module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param3_3_type->writeAndGenType(*module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param3_3.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param3_3)); ::apache::thrift::metadata::ThriftField module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param4_4; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param4_4.id_ref() = 4; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param4_4.name_ref() = "param4"; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param4_4.is_optional_ref() = false; auto module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param4_4_type = std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE); module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param4_4_type->writeAndGenType(*module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param4_4.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param4_4)); ::apache::thrift::metadata::ThriftField module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param5_5; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param5_5.id_ref() = 5; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param5_5.name_ref() = "param5"; module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param5_5.is_optional_ref() = false; auto module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param5_5_type = std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE); module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param5_5_type->writeAndGenType(*module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param5_5.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_i64_ret_i32_i32_i32_i32_i32_param_param5_5)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_double_ret_setstruct_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "double_ret_setstruct_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_double_ret_setstruct_param_param1_4; module_ParamService_double_ret_setstruct_param_param1_4.id_ref() = 4; module_ParamService_double_ret_setstruct_param_param1_4.name_ref() = "param1"; module_ParamService_double_ret_setstruct_param_param1_4.is_optional_ref() = false; auto module_ParamService_double_ret_setstruct_param_param1_4_type = std::make_unique(std::make_unique>("module.MyStruct")); module_ParamService_double_ret_setstruct_param_param1_4_type->writeAndGenType(*module_ParamService_double_ret_setstruct_param_param1_4.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_double_ret_setstruct_param_param1_4)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_string_ret_string_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "string_ret_string_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_string_ret_string_param_param1_1; module_ParamService_string_ret_string_param_param1_1.id_ref() = 1; module_ParamService_string_ret_string_param_param1_1.name_ref() = "param1"; module_ParamService_string_ret_string_param_param1_1.is_optional_ref() = false; auto module_ParamService_string_ret_string_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE); module_ParamService_string_ret_string_param_param1_1_type->writeAndGenType(*module_ParamService_string_ret_string_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_string_ret_string_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_binary_ret_binary_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "binary_ret_binary_param"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_binary_ret_binary_param_param1_1; module_ParamService_binary_ret_binary_param_param1_1.id_ref() = 1; module_ParamService_binary_ret_binary_param_param1_1.name_ref() = "param1"; module_ParamService_binary_ret_binary_param_param1_1.is_optional_ref() = false; auto module_ParamService_binary_ret_binary_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_BINARY_TYPE); module_ParamService_binary_ret_binary_param_param1_1_type->writeAndGenType(*module_ParamService_binary_ret_binary_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_binary_ret_binary_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_map_ret_bool_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "map_ret_bool_param"; auto func_ret_type = std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE)); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_map_ret_bool_param_param1_1; module_ParamService_map_ret_bool_param_param1_1.id_ref() = 1; module_ParamService_map_ret_bool_param_param1_1.name_ref() = "param1"; module_ParamService_map_ret_bool_param_param1_1.is_optional_ref() = false; auto module_ParamService_map_ret_bool_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE); module_ParamService_map_ret_bool_param_param1_1_type->writeAndGenType(*module_ParamService_map_ret_bool_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_map_ret_bool_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_list_ret_map_setlist_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "list_ret_map_setlist_param"; auto func_ret_type = std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE)); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_list_ret_map_setlist_param_param1_1; module_ParamService_list_ret_map_setlist_param_param1_1.id_ref() = 1; module_ParamService_list_ret_map_setlist_param_param1_1.name_ref() = "param1"; module_ParamService_list_ret_map_setlist_param_param1_1.is_optional_ref() = false; auto module_ParamService_list_ret_map_setlist_param_param1_1_type = std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE))); module_ParamService_list_ret_map_setlist_param_param1_1_type->writeAndGenType(*module_ParamService_list_ret_map_setlist_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_list_ret_map_setlist_param_param1_1)); ::apache::thrift::metadata::ThriftField module_ParamService_list_ret_map_setlist_param_param2_2; module_ParamService_list_ret_map_setlist_param_param2_2.id_ref() = 2; module_ParamService_list_ret_map_setlist_param_param2_2.name_ref() = "param2"; module_ParamService_list_ret_map_setlist_param_param2_2.is_optional_ref() = false; auto module_ParamService_list_ret_map_setlist_param_param2_2_type = std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)); module_ParamService_list_ret_map_setlist_param_param2_2_type->writeAndGenType(*module_ParamService_list_ret_map_setlist_param_param2_2.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_list_ret_map_setlist_param_param2_2)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_mapsetlistmapliststring_ret_listlistlist_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "mapsetlistmapliststring_ret_listlistlist_param"; auto func_ret_type = std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))), std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE))), std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE))); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_mapsetlistmapliststring_ret_listlistlist_param_param1_1; module_ParamService_mapsetlistmapliststring_ret_listlistlist_param_param1_1.id_ref() = 1; module_ParamService_mapsetlistmapliststring_ret_listlistlist_param_param1_1.name_ref() = "param1"; module_ParamService_mapsetlistmapliststring_ret_listlistlist_param_param1_1.is_optional_ref() = false; auto module_ParamService_mapsetlistmapliststring_ret_listlistlist_param_param1_1_type = std::make_unique(std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))))); module_ParamService_mapsetlistmapliststring_ret_listlistlist_param_param1_1_type->writeAndGenType(*module_ParamService_mapsetlistmapliststring_ret_listlistlist_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_mapsetlistmapliststring_ret_listlistlist_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_typedef_ret_i32_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "typedef_ret_i32_param"; auto func_ret_type = std::make_unique("module.simpleTypeDef", std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{}); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_typedef_ret_i32_param_param1_1; module_ParamService_typedef_ret_i32_param_param1_1.id_ref() = 1; module_ParamService_typedef_ret_i32_param_param1_1.name_ref() = "param1"; module_ParamService_typedef_ret_i32_param_param1_1.is_optional_ref() = false; auto module_ParamService_typedef_ret_i32_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE); module_ParamService_typedef_ret_i32_param_param1_1_type->writeAndGenType(*module_ParamService_typedef_ret_i32_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_typedef_ret_i32_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_listtypedef_ret_typedef_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "listtypedef_ret_typedef_param"; auto func_ret_type = std::make_unique(std::make_unique("module.simpleTypeDef", std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{})); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_listtypedef_ret_typedef_param_param1_1; module_ParamService_listtypedef_ret_typedef_param_param1_1.id_ref() = 1; module_ParamService_listtypedef_ret_typedef_param_param1_1.name_ref() = "param1"; module_ParamService_listtypedef_ret_typedef_param_param1_1.is_optional_ref() = false; auto module_ParamService_listtypedef_ret_typedef_param_param1_1_type = std::make_unique("module.complexStructTypeDef", std::make_unique(std::make_unique(std::make_unique>("module.Empty"), std::make_unique>("module.MyStruct"))), std::vector{}); module_ParamService_listtypedef_ret_typedef_param_param1_1_type->writeAndGenType(*module_ParamService_listtypedef_ret_typedef_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_listtypedef_ret_typedef_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_enum_ret_double_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "enum_ret_double_param"; auto func_ret_type = std::make_unique>("module.MyEnumA"); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_enum_ret_double_param_param1_3; module_ParamService_enum_ret_double_param_param1_3.id_ref() = 3; module_ParamService_enum_ret_double_param_param1_3.name_ref() = "param1"; module_ParamService_enum_ret_double_param_param1_3.is_optional_ref() = false; auto module_ParamService_enum_ret_double_param_param1_3_type = std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE); module_ParamService_enum_ret_double_param_param1_3_type->writeAndGenType(*module_ParamService_enum_ret_double_param_param1_3.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_enum_ret_double_param_param1_3)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_enum_ret_double_enum_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "enum_ret_double_enum_param"; auto func_ret_type = std::make_unique>("module.MyEnumA"); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_enum_ret_double_enum_param_param1_3; module_ParamService_enum_ret_double_enum_param_param1_3.id_ref() = 3; module_ParamService_enum_ret_double_enum_param_param1_3.name_ref() = "param1"; module_ParamService_enum_ret_double_enum_param_param1_3.is_optional_ref() = false; auto module_ParamService_enum_ret_double_enum_param_param1_3_type = std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE); module_ParamService_enum_ret_double_enum_param_param1_3_type->writeAndGenType(*module_ParamService_enum_ret_double_enum_param_param1_3.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_enum_ret_double_enum_param_param1_3)); ::apache::thrift::metadata::ThriftField module_ParamService_enum_ret_double_enum_param_param2_5; module_ParamService_enum_ret_double_enum_param_param2_5.id_ref() = 5; module_ParamService_enum_ret_double_enum_param_param2_5.name_ref() = "param2"; module_ParamService_enum_ret_double_enum_param_param2_5.is_optional_ref() = false; auto module_ParamService_enum_ret_double_enum_param_param2_5_type = std::make_unique>("module.MyEnumA"); module_ParamService_enum_ret_double_enum_param_param2_5_type->writeAndGenType(*module_ParamService_enum_ret_double_enum_param_param2_5.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_enum_ret_double_enum_param_param2_5)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_listenum_ret_map_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "listenum_ret_map_param"; auto func_ret_type = std::make_unique(std::make_unique>("module.MyEnumA")); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_listenum_ret_map_param_param1_1; module_ParamService_listenum_ret_map_param_param1_1.id_ref() = 1; module_ParamService_listenum_ret_map_param_param1_1.name_ref() = "param1"; module_ParamService_listenum_ret_map_param_param1_1.is_optional_ref() = false; auto module_ParamService_listenum_ret_map_param_param1_1_type = std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE)); module_ParamService_listenum_ret_map_param_param1_1_type->writeAndGenType(*module_ParamService_listenum_ret_map_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_listenum_ret_map_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_struct_ret_i16_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "struct_ret_i16_param"; auto func_ret_type = std::make_unique>("module.MyStruct"); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_struct_ret_i16_param_param1_1; module_ParamService_struct_ret_i16_param_param1_1.id_ref() = 1; module_ParamService_struct_ret_i16_param_param1_1.name_ref() = "param1"; module_ParamService_struct_ret_i16_param_param1_1.is_optional_ref() = false; auto module_ParamService_struct_ret_i16_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_I16_TYPE); module_ParamService_struct_ret_i16_param_param1_1_type->writeAndGenType(*module_ParamService_struct_ret_i16_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_struct_ret_i16_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_setstruct_ret_set_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "setstruct_ret_set_param"; auto func_ret_type = std::make_unique(std::make_unique>("module.MyStruct")); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_setstruct_ret_set_param_param1_8; module_ParamService_setstruct_ret_set_param_param1_8.id_ref() = 8; module_ParamService_setstruct_ret_set_param_param1_8.name_ref() = "param1"; module_ParamService_setstruct_ret_set_param_param1_8.is_optional_ref() = false; auto module_ParamService_setstruct_ret_set_param_param1_8_type = std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE)); module_ParamService_setstruct_ret_set_param_param1_8_type->writeAndGenType(*module_ParamService_setstruct_ret_set_param_param1_8.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_setstruct_ret_set_param_param1_8)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_union_ret_i32_i32_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "union_ret_i32_i32_param"; auto func_ret_type = std::make_unique>("module.ComplexUnion"); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_union_ret_i32_i32_param_param1_4; module_ParamService_union_ret_i32_i32_param_param1_4.id_ref() = 4; module_ParamService_union_ret_i32_i32_param_param1_4.name_ref() = "param1"; module_ParamService_union_ret_i32_i32_param_param1_4.is_optional_ref() = false; auto module_ParamService_union_ret_i32_i32_param_param1_4_type = std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE); module_ParamService_union_ret_i32_i32_param_param1_4_type->writeAndGenType(*module_ParamService_union_ret_i32_i32_param_param1_4.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_union_ret_i32_i32_param_param1_4)); ::apache::thrift::metadata::ThriftField module_ParamService_union_ret_i32_i32_param_param2_2; module_ParamService_union_ret_i32_i32_param_param2_2.id_ref() = 2; module_ParamService_union_ret_i32_i32_param_param2_2.name_ref() = "param2"; module_ParamService_union_ret_i32_i32_param_param2_2.is_optional_ref() = false; auto module_ParamService_union_ret_i32_i32_param_param2_2_type = std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE); module_ParamService_union_ret_i32_i32_param_param2_2_type->writeAndGenType(*module_ParamService_union_ret_i32_i32_param_param2_2.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_union_ret_i32_i32_param_param2_2)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_listunion_string_param(ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; (void)metadata; func.name_ref() = "listunion_string_param"; auto func_ret_type = std::make_unique(std::make_unique>("module.ComplexUnion")); func_ret_type->writeAndGenType(*func.return_type_ref(), metadata); ::apache::thrift::metadata::ThriftField module_ParamService_listunion_string_param_param1_1; module_ParamService_listunion_string_param_param1_1.id_ref() = 1; module_ParamService_listunion_string_param_param1_1.name_ref() = "param1"; module_ParamService_listunion_string_param_param1_1.is_optional_ref() = false; auto module_ParamService_listunion_string_param_param1_1_type = std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE); module_ParamService_listunion_string_param_param1_1_type->writeAndGenType(*module_ParamService_listunion_string_param_param1_1.type_ref(), metadata); func.arguments_ref()->push_back(std::move(module_ParamService_listunion_string_param_param1_1)); func.is_oneway_ref() = false; service.functions_ref()->push_back(std::move(func)); } void ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen(::apache::thrift::metadata::ThriftServiceMetadataResponse& response) { const ::apache::thrift::metadata::ThriftServiceContextRef* self = genRecurse(*response.metadata_ref(), *response.services_ref()); DCHECK(self != nullptr); // TODO(praihan): Remove ThriftServiceContext from response. But in the meantime, we need to fill the field with the result of looking up in ThriftMetadata. ::apache::thrift::metadata::ThriftServiceContext context; context.module_ref() = *self->module_ref(); context.service_info_ref() = response.metadata_ref()->services_ref()->at(*self->service_name_ref()); response.context_ref() = std::move(context); } const ThriftServiceContextRef* ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::genRecurse(ThriftMetadata& metadata, std::vector& services) { (void) metadata; ::apache::thrift::metadata::ThriftService module_ParamService; module_ParamService.name_ref() = "module.ParamService"; static const ThriftFunctionGenerator functions[] = { ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_i16_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_byte_i16_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_map_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_map_setlist_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_map_typedef_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_enum_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_struct_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_void_ret_listunion_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_bool_ret_i32_i64_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_bool_ret_map_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_bool_ret_union_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_i64_ret_float_double_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_i64_ret_string_typedef_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_i64_ret_i32_i32_i32_i32_i32_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_double_ret_setstruct_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_string_ret_string_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_binary_ret_binary_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_map_ret_bool_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_list_ret_map_setlist_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_mapsetlistmapliststring_ret_listlistlist_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_typedef_ret_i32_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_listtypedef_ret_typedef_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_enum_ret_double_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_enum_ret_double_enum_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_listenum_ret_map_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_struct_ret_i16_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_setstruct_ret_set_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_union_ret_i32_i32_param, ServiceMetadata<::some::valid::ns::ParamServiceSvIf>::gen_listunion_string_param, }; for (auto& function_gen : functions) { function_gen(metadata, module_ParamService); } // We need to keep the index around because a reference or iterator could be invalidated. auto selfIndex = services.size(); services.emplace_back(); ThriftServiceContextRef& context = services[selfIndex]; metadata.services_ref()->emplace("module.ParamService", std::move(module_ParamService)); context.service_name_ref() = "module.ParamService"; ::apache::thrift::metadata::ThriftModuleContext module; module.name_ref() = "module"; context.module_ref() = std::move(module); return &context; } } // namespace md } // namespace detail } // namespace thrift } // namespace apache