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)24void 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)34const 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