/** * Autogenerated by Thrift for thrift/compiler/test/fixtures/inheritance/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/inheritance/gen-cpp2/module_metadata.h" // some of these functions can be so large that the compiler gives up optimizing // them - and issues a warning which may be treated as an error! // // these functions are so rarely called that it is probably okay for them not to // be optimized in practice FOLLY_CLANG_DISABLE_WARNING("-Wignored-optimization-argument") 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 ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyRoot>>::gen_do_root([[maybe_unused]] ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; func.name() = "do_root"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type(), metadata); func.is_oneway() = false; service.functions()->push_back(std::move(func)); } void ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyRoot>>::gen(::apache::thrift::metadata::ThriftServiceMetadataResponse& response) { const ::apache::thrift::metadata::ThriftServiceContextRef* self = genRecurse(*response.metadata(), *response.services()); 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() = *self->module(); context.service_info() = response.metadata()->services()->at(*self->service_name()); response.context() = std::move(context); } const ThriftServiceContextRef* ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyRoot>>::genRecurse([[maybe_unused]] ThriftMetadata& metadata, std::vector& services) { ::apache::thrift::metadata::ThriftService module_MyRoot; module_MyRoot.name() = "module.MyRoot"; static const ThriftFunctionGenerator functions[] = { ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyRoot>>::gen_do_root, }; for (auto& function_gen : functions) { function_gen(metadata, module_MyRoot); } // 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()->emplace("module.MyRoot", std::move(module_MyRoot)); context.service_name() = "module.MyRoot"; ::apache::thrift::metadata::ThriftModuleContext module; module.name() = "module"; context.module() = std::move(module); return &context; } void ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyNode>>::gen_do_mid([[maybe_unused]] ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; func.name() = "do_mid"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type(), metadata); func.is_oneway() = false; service.functions()->push_back(std::move(func)); } void ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyNode>>::gen(::apache::thrift::metadata::ThriftServiceMetadataResponse& response) { const ::apache::thrift::metadata::ThriftServiceContextRef* self = genRecurse(*response.metadata(), *response.services()); 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() = *self->module(); context.service_info() = response.metadata()->services()->at(*self->service_name()); response.context() = std::move(context); } const ThriftServiceContextRef* ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyNode>>::genRecurse([[maybe_unused]] ThriftMetadata& metadata, std::vector& services) { ::apache::thrift::metadata::ThriftService module_MyNode; module_MyNode.name() = "module.MyNode"; static const ThriftFunctionGenerator functions[] = { ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyNode>>::gen_do_mid, }; for (auto& function_gen : functions) { function_gen(metadata, module_MyNode); } // We need to keep the index around because a reference or iterator could be invalidated. auto selfIndex = services.size(); services.emplace_back(); module_MyNode.parent() = "module.MyRoot"; ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyRoot>>::genRecurse(metadata, services); ThriftServiceContextRef& context = services[selfIndex]; metadata.services()->emplace("module.MyNode", std::move(module_MyNode)); context.service_name() = "module.MyNode"; ::apache::thrift::metadata::ThriftModuleContext module; module.name() = "module"; context.module() = std::move(module); return &context; } void ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyLeaf>>::gen_do_leaf([[maybe_unused]] ThriftMetadata& metadata, ThriftService& service) { ::apache::thrift::metadata::ThriftFunction func; func.name() = "do_leaf"; auto func_ret_type = std::make_unique(ThriftPrimitiveType::THRIFT_VOID_TYPE); func_ret_type->writeAndGenType(*func.return_type(), metadata); func.is_oneway() = false; service.functions()->push_back(std::move(func)); } void ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyLeaf>>::gen(::apache::thrift::metadata::ThriftServiceMetadataResponse& response) { const ::apache::thrift::metadata::ThriftServiceContextRef* self = genRecurse(*response.metadata(), *response.services()); 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() = *self->module(); context.service_info() = response.metadata()->services()->at(*self->service_name()); response.context() = std::move(context); } const ThriftServiceContextRef* ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyLeaf>>::genRecurse([[maybe_unused]] ThriftMetadata& metadata, std::vector& services) { ::apache::thrift::metadata::ThriftService module_MyLeaf; module_MyLeaf.name() = "module.MyLeaf"; static const ThriftFunctionGenerator functions[] = { ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyLeaf>>::gen_do_leaf, }; for (auto& function_gen : functions) { function_gen(metadata, module_MyLeaf); } // We need to keep the index around because a reference or iterator could be invalidated. auto selfIndex = services.size(); services.emplace_back(); module_MyLeaf.parent() = "module.MyNode"; ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyNode>>::genRecurse(metadata, services); ThriftServiceContextRef& context = services[selfIndex]; metadata.services()->emplace("module.MyLeaf", std::move(module_MyLeaf)); context.service_name() = "module.MyLeaf"; ::apache::thrift::metadata::ThriftModuleContext module; module.name() = "module"; context.module() = std::move(module); return &context; } } // namespace md } // namespace detail } // namespace thrift } // namespace apache