1 /**
2  * Autogenerated by Thrift for src/empty.thrift
3  *
4  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5  *  @generated @nocommit
6  */
7 #include <thrift/lib/cpp2/gen/module_metadata_cpp.h>
8 #include "thrift/compiler/test/fixtures/py3/gen-py3cpp/empty_metadata.h"
9 
10 namespace apache {
11 namespace thrift {
12 namespace detail {
13 namespace md {
14 using ThriftMetadata = ::apache::thrift::metadata::ThriftMetadata;
15 using ThriftPrimitiveType = ::apache::thrift::metadata::ThriftPrimitiveType;
16 using ThriftType = ::apache::thrift::metadata::ThriftType;
17 using ThriftService = ::apache::thrift::metadata::ThriftService;
18 using ThriftServiceContext = ::apache::thrift::metadata::ThriftServiceContext;
19 using ThriftFunctionGenerator = void (*)(ThriftMetadata&, ThriftService&);
20 
21 
22 
23 
gen(::apache::thrift::metadata::ThriftServiceMetadataResponse & response)24 void ServiceMetadata<::cpp2::NullServiceSvIf>::gen(::apache::thrift::metadata::ThriftServiceMetadataResponse& response) {
25   const ::apache::thrift::metadata::ThriftServiceContextRef* self = genRecurse(*response.metadata_ref(), *response.services_ref());
26   DCHECK(self != nullptr);
27   // TODO(praihan): Remove ThriftServiceContext from response. But in the meantime, we need to fill the field with the result of looking up in ThriftMetadata.
28   ::apache::thrift::metadata::ThriftServiceContext context;
29   context.module_ref() = *self->module_ref();
30   context.service_info_ref() = response.metadata_ref()->services_ref()->at(*self->service_name_ref());
31   response.context_ref() = std::move(context);
32 }
33 
genRecurse(ThriftMetadata & metadata,std::vector<ThriftServiceContextRef> & services)34 const ThriftServiceContextRef* ServiceMetadata<::cpp2::NullServiceSvIf>::genRecurse(ThriftMetadata& metadata, std::vector<ThriftServiceContextRef>& services) {
35   (void) metadata;
36   ::apache::thrift::metadata::ThriftService empty_NullService;
37   empty_NullService.name_ref() = "empty.NullService";
38   // We need to keep the index around because a reference or iterator could be invalidated.
39   auto selfIndex = services.size();
40   services.emplace_back();
41   ThriftServiceContextRef& context = services[selfIndex];
42   metadata.services_ref()->emplace("empty.NullService", std::move(empty_NullService));
43   context.service_name_ref() = "empty.NullService";
44   ::apache::thrift::metadata::ThriftModuleContext module;
45   module.name_ref() = "empty";
46   context.module_ref() = std::move(module);
47   return &context;
48 }
49 } // namespace md
50 } // namespace detail
51 } // namespace thrift
52 } // namespace apache
53