/**
 * Autogenerated by Thrift for thrift/compiler/test/fixtures/visitation/src/module.thrift
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated @nocommit
 */
#pragma once

#include <thrift/lib/cpp2/gen/service_h.h>

#include "thrift/compiler/test/fixtures/visitation/gen-cpp2/service_with_special_namesAsyncClient.h"
#include "thrift/compiler/test/fixtures/visitation/gen-cpp2/module_types.h"
#include "thrift/compiler/test/fixtures/visitation/gen-cpp2/reflection_dep_B_types.h"
#include "thrift/compiler/test/fixtures/visitation/gen-cpp2/reflection_dep_C_types.h"
#include "thrift/test/fatal_custom_types.h"

namespace folly {
  class IOBuf;
  class IOBufQueue;
}
namespace apache { namespace thrift {
  class Cpp2RequestContext;
  class BinaryProtocolReader;
  class CompactProtocolReader;
  namespace transport { class THeader; }
}}

namespace test_cpp2::cpp_reflection {
class service_with_special_names;
class service_with_special_namesAsyncProcessor;

class service_with_special_namesServiceInfoHolder : public apache::thrift::ServiceInfoHolder {
  public:
   apache::thrift::ServiceRequestInfoMap const& requestInfoMap() const override;
   static apache::thrift::ServiceRequestInfoMap staticRequestInfoMap();
};
} // namespace test_cpp2::cpp_reflection

namespace apache::thrift {
template <>
class ServiceHandler<::test_cpp2::cpp_reflection::service_with_special_names> : public apache::thrift::ServerInterface {
 public:
  std::string_view getGeneratedName() const override { return "service_with_special_names"; }

  typedef ::test_cpp2::cpp_reflection::service_with_special_namesAsyncProcessor ProcessorType;
  std::unique_ptr<apache::thrift::AsyncProcessor> getProcessor() override;
  CreateMethodMetadataResult createMethodMetadata() override;
  bool isThriftGenerated() const override final { return true; }
 private:
  std::optional<std::reference_wrapper<apache::thrift::ServiceRequestInfoMap const>> getServiceRequestInfoMap() const;
 public:

  virtual ::std::int32_t sync_get();
  [[deprecated("Use sync_get instead")]] virtual ::std::int32_t get();
  virtual folly::Future<::std::int32_t> future_get();
  virtual folly::SemiFuture<::std::int32_t> semifuture_get();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_get();
  virtual folly::coro::Task<::std::int32_t> co_get(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_get(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_getter();
  [[deprecated("Use sync_getter instead")]] virtual ::std::int32_t getter();
  virtual folly::Future<::std::int32_t> future_getter();
  virtual folly::SemiFuture<::std::int32_t> semifuture_getter();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_getter();
  virtual folly::coro::Task<::std::int32_t> co_getter(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_getter(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_lists();
  [[deprecated("Use sync_lists instead")]] virtual ::std::int32_t lists();
  virtual folly::Future<::std::int32_t> future_lists();
  virtual folly::SemiFuture<::std::int32_t> semifuture_lists();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_lists();
  virtual folly::coro::Task<::std::int32_t> co_lists(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_lists(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_maps();
  [[deprecated("Use sync_maps instead")]] virtual ::std::int32_t maps();
  virtual folly::Future<::std::int32_t> future_maps();
  virtual folly::SemiFuture<::std::int32_t> semifuture_maps();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_maps();
  virtual folly::coro::Task<::std::int32_t> co_maps(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_maps(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_name();
  [[deprecated("Use sync_name instead")]] virtual ::std::int32_t name();
  virtual folly::Future<::std::int32_t> future_name();
  virtual folly::SemiFuture<::std::int32_t> semifuture_name();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_name();
  virtual folly::coro::Task<::std::int32_t> co_name(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_name(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_name_to_value();
  [[deprecated("Use sync_name_to_value instead")]] virtual ::std::int32_t name_to_value();
  virtual folly::Future<::std::int32_t> future_name_to_value();
  virtual folly::SemiFuture<::std::int32_t> semifuture_name_to_value();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_name_to_value();
  virtual folly::coro::Task<::std::int32_t> co_name_to_value(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_name_to_value(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_names();
  [[deprecated("Use sync_names instead")]] virtual ::std::int32_t names();
  virtual folly::Future<::std::int32_t> future_names();
  virtual folly::SemiFuture<::std::int32_t> semifuture_names();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_names();
  virtual folly::coro::Task<::std::int32_t> co_names(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_names(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_prefix_tree();
  [[deprecated("Use sync_prefix_tree instead")]] virtual ::std::int32_t prefix_tree();
  virtual folly::Future<::std::int32_t> future_prefix_tree();
  virtual folly::SemiFuture<::std::int32_t> semifuture_prefix_tree();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_prefix_tree();
  virtual folly::coro::Task<::std::int32_t> co_prefix_tree(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_prefix_tree(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_sets();
  [[deprecated("Use sync_sets instead")]] virtual ::std::int32_t sets();
  virtual folly::Future<::std::int32_t> future_sets();
  virtual folly::SemiFuture<::std::int32_t> semifuture_sets();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_sets();
  virtual folly::coro::Task<::std::int32_t> co_sets(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_sets(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_setter();
  [[deprecated("Use sync_setter instead")]] virtual ::std::int32_t setter();
  virtual folly::Future<::std::int32_t> future_setter();
  virtual folly::SemiFuture<::std::int32_t> semifuture_setter();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_setter();
  virtual folly::coro::Task<::std::int32_t> co_setter(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_setter(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_str();
  [[deprecated("Use sync_str instead")]] virtual ::std::int32_t str();
  virtual folly::Future<::std::int32_t> future_str();
  virtual folly::SemiFuture<::std::int32_t> semifuture_str();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_str();
  virtual folly::coro::Task<::std::int32_t> co_str(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_str(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_strings();
  [[deprecated("Use sync_strings instead")]] virtual ::std::int32_t strings();
  virtual folly::Future<::std::int32_t> future_strings();
  virtual folly::SemiFuture<::std::int32_t> semifuture_strings();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_strings();
  virtual folly::coro::Task<::std::int32_t> co_strings(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_strings(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_type();
  [[deprecated("Use sync_type instead")]] virtual ::std::int32_t type();
  virtual folly::Future<::std::int32_t> future_type();
  virtual folly::SemiFuture<::std::int32_t> semifuture_type();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_type();
  virtual folly::coro::Task<::std::int32_t> co_type(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_type(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_value();
  [[deprecated("Use sync_value instead")]] virtual ::std::int32_t value();
  virtual folly::Future<::std::int32_t> future_value();
  virtual folly::SemiFuture<::std::int32_t> semifuture_value();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_value();
  virtual folly::coro::Task<::std::int32_t> co_value(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_value(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_value_to_name();
  [[deprecated("Use sync_value_to_name instead")]] virtual ::std::int32_t value_to_name();
  virtual folly::Future<::std::int32_t> future_value_to_name();
  virtual folly::SemiFuture<::std::int32_t> semifuture_value_to_name();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_value_to_name();
  virtual folly::coro::Task<::std::int32_t> co_value_to_name(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_value_to_name(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_values();
  [[deprecated("Use sync_values instead")]] virtual ::std::int32_t values();
  virtual folly::Future<::std::int32_t> future_values();
  virtual folly::SemiFuture<::std::int32_t> semifuture_values();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_values();
  virtual folly::coro::Task<::std::int32_t> co_values(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_values(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_id();
  [[deprecated("Use sync_id instead")]] virtual ::std::int32_t id();
  virtual folly::Future<::std::int32_t> future_id();
  virtual folly::SemiFuture<::std::int32_t> semifuture_id();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_id();
  virtual folly::coro::Task<::std::int32_t> co_id(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_id(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_ids();
  [[deprecated("Use sync_ids instead")]] virtual ::std::int32_t ids();
  virtual folly::Future<::std::int32_t> future_ids();
  virtual folly::SemiFuture<::std::int32_t> semifuture_ids();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_ids();
  virtual folly::coro::Task<::std::int32_t> co_ids(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_ids(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_descriptor();
  [[deprecated("Use sync_descriptor instead")]] virtual ::std::int32_t descriptor();
  virtual folly::Future<::std::int32_t> future_descriptor();
  virtual folly::SemiFuture<::std::int32_t> semifuture_descriptor();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_descriptor();
  virtual folly::coro::Task<::std::int32_t> co_descriptor(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_descriptor(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_descriptors();
  [[deprecated("Use sync_descriptors instead")]] virtual ::std::int32_t descriptors();
  virtual folly::Future<::std::int32_t> future_descriptors();
  virtual folly::SemiFuture<::std::int32_t> semifuture_descriptors();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_descriptors();
  virtual folly::coro::Task<::std::int32_t> co_descriptors(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_descriptors(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_key();
  [[deprecated("Use sync_key instead")]] virtual ::std::int32_t key();
  virtual folly::Future<::std::int32_t> future_key();
  virtual folly::SemiFuture<::std::int32_t> semifuture_key();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_key();
  virtual folly::coro::Task<::std::int32_t> co_key(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_key(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_keys();
  [[deprecated("Use sync_keys instead")]] virtual ::std::int32_t keys();
  virtual folly::Future<::std::int32_t> future_keys();
  virtual folly::SemiFuture<::std::int32_t> semifuture_keys();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_keys();
  virtual folly::coro::Task<::std::int32_t> co_keys(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_keys(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_annotation();
  [[deprecated("Use sync_annotation instead")]] virtual ::std::int32_t annotation();
  virtual folly::Future<::std::int32_t> future_annotation();
  virtual folly::SemiFuture<::std::int32_t> semifuture_annotation();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_annotation();
  virtual folly::coro::Task<::std::int32_t> co_annotation(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_annotation(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_annotations();
  [[deprecated("Use sync_annotations instead")]] virtual ::std::int32_t annotations();
  virtual folly::Future<::std::int32_t> future_annotations();
  virtual folly::SemiFuture<::std::int32_t> semifuture_annotations();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_annotations();
  virtual folly::coro::Task<::std::int32_t> co_annotations(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_annotations(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_member();
  [[deprecated("Use sync_member instead")]] virtual ::std::int32_t member();
  virtual folly::Future<::std::int32_t> future_member();
  virtual folly::SemiFuture<::std::int32_t> semifuture_member();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_member();
  virtual folly::coro::Task<::std::int32_t> co_member(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_member(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_members();
  [[deprecated("Use sync_members instead")]] virtual ::std::int32_t members();
  virtual folly::Future<::std::int32_t> future_members();
  virtual folly::SemiFuture<::std::int32_t> semifuture_members();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_members();
  virtual folly::coro::Task<::std::int32_t> co_members(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_members(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_field();
  [[deprecated("Use sync_field instead")]] virtual ::std::int32_t field();
  virtual folly::Future<::std::int32_t> future_field();
  virtual folly::SemiFuture<::std::int32_t> semifuture_field();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_field();
  virtual folly::coro::Task<::std::int32_t> co_field(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_field(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
  virtual ::std::int32_t sync_fields();
  [[deprecated("Use sync_fields instead")]] virtual ::std::int32_t fields();
  virtual folly::Future<::std::int32_t> future_fields();
  virtual folly::SemiFuture<::std::int32_t> semifuture_fields();
#if FOLLY_HAS_COROUTINES
  virtual folly::coro::Task<::std::int32_t> co_fields();
  virtual folly::coro::Task<::std::int32_t> co_fields(apache::thrift::RequestParams params);
#endif
  virtual void async_tm_fields(apache::thrift::HandlerCallbackPtr<::std::int32_t> callback);
 private:
  static ::test_cpp2::cpp_reflection::service_with_special_namesServiceInfoHolder __fbthrift_serviceInfoHolder;
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_get{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_getter{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_lists{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_maps{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_name{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_name_to_value{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_names{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_prefix_tree{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_sets{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_setter{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_str{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_strings{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_type{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_value{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_value_to_name{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_values{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_id{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_ids{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_descriptor{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_descriptors{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_key{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_keys{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_annotation{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_annotations{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_member{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_members{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_field{apache::thrift::detail::si::InvocationType::AsyncTm};
  std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_fields{apache::thrift::detail::si::InvocationType::AsyncTm};
};

} // namespace apache::thrift

namespace test_cpp2::cpp_reflection {
using service_with_special_namesSvIf [[deprecated("Use apache::thrift::ServiceHandler<service_with_special_names> instead")]] = ::apache::thrift::ServiceHandler<service_with_special_names>;
} // namespace test_cpp2::cpp_reflection

namespace test_cpp2::cpp_reflection {
class service_with_special_namesSvNull : public ::apache::thrift::ServiceHandler<service_with_special_names> {
 public:
  ::std::int32_t get() override;
  ::std::int32_t getter() override;
  ::std::int32_t lists() override;
  ::std::int32_t maps() override;
  ::std::int32_t name() override;
  ::std::int32_t name_to_value() override;
  ::std::int32_t names() override;
  ::std::int32_t prefix_tree() override;
  ::std::int32_t sets() override;
  ::std::int32_t setter() override;
  ::std::int32_t str() override;
  ::std::int32_t strings() override;
  ::std::int32_t type() override;
  ::std::int32_t value() override;
  ::std::int32_t value_to_name() override;
  ::std::int32_t values() override;
  ::std::int32_t id() override;
  ::std::int32_t ids() override;
  ::std::int32_t descriptor() override;
  ::std::int32_t descriptors() override;
  ::std::int32_t key() override;
  ::std::int32_t keys() override;
  ::std::int32_t annotation() override;
  ::std::int32_t annotations() override;
  ::std::int32_t member() override;
  ::std::int32_t members() override;
  ::std::int32_t field() override;
  ::std::int32_t fields() override;
};

class service_with_special_namesAsyncProcessor : public ::apache::thrift::GeneratedAsyncProcessorBase {
 public:
  const char* getServiceName() override;
  void getServiceMetadata(apache::thrift::metadata::ThriftServiceMetadataResponse& response) override;
  using BaseAsyncProcessor = void;
 protected:
  ::apache::thrift::ServiceHandler<::test_cpp2::cpp_reflection::service_with_special_names>* iface_;
 public:
  void processSerializedCompressedRequestWithMetadata(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, const apache::thrift::AsyncProcessorFactory::MethodMetadata& methodMetadata, apache::thrift::protocol::PROTOCOL_TYPES protType, apache::thrift::Cpp2RequestContext* context, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm) override;
  void executeRequest(apache::thrift::ServerRequest&& serverRequest, const apache::thrift::AsyncProcessorFactory::MethodMetadata& methodMetadata) override;
 public:
  using ProcessFuncs = GeneratedAsyncProcessorBase::ProcessFuncs<service_with_special_namesAsyncProcessor>;
  using ProcessMap = GeneratedAsyncProcessorBase::ProcessMap<ProcessFuncs>;
  static const service_with_special_namesAsyncProcessor::ProcessMap& getOwnProcessMap();
 private:
  static const service_with_special_namesAsyncProcessor::ProcessMap kOwnProcessMap_;
 private:
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_get(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_get(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_get(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_get(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_getter(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_getter(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_getter(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_getter(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_lists(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_lists(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_lists(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_lists(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_maps(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_maps(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_maps(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_maps(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_name(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_name(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_name(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_name(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_name_to_value(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_name_to_value(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_name_to_value(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_name_to_value(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_names(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_names(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_names(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_names(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_prefix_tree(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_prefix_tree(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_prefix_tree(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_prefix_tree(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_sets(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_sets(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_sets(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_sets(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_setter(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_setter(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_setter(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_setter(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_str(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_str(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_str(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_str(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_strings(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_strings(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_strings(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_strings(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_type(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_type(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_type(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_type(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_value(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_value(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_value(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_value(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_value_to_name(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_value_to_name(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_value_to_name(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_value_to_name(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_values(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_values(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_values(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_values(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_id(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_id(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_id(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_id(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_ids(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_ids(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_ids(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_ids(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_descriptor(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_descriptor(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_descriptor(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_descriptor(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_descriptors(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_descriptors(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_descriptors(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_descriptors(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_key(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_key(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_key(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_key(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_keys(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_keys(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_keys(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_keys(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_annotation(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_annotation(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_annotation(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_annotation(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_annotations(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_annotations(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_annotations(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_annotations(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_member(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_member(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_member(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_member(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_members(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_members(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_members(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_members(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_field(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_field(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_field(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_field(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void setUpAndProcess_fields(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
  template <typename ProtocolIn_, typename ProtocolOut_>
  void executeRequest_fields(apache::thrift::ServerRequest&& serverRequest);
  template <class ProtocolIn_, class ProtocolOut_>
  static apache::thrift::SerializedResponse return_fields(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
  template <class ProtocolIn_, class ProtocolOut_>
  static void throw_wrapped_fields(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
 public:
  service_with_special_namesAsyncProcessor(::apache::thrift::ServiceHandler<::test_cpp2::cpp_reflection::service_with_special_names>* iface) :
      iface_(iface) {}
  ~service_with_special_namesAsyncProcessor() override {}
};

} // namespace test_cpp2::cpp_reflection
