text: /**
   * Autogenerated by Thrift for 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/no_metadata/gen-cpp2/MyServiceAsyncClient.h"
  #include "thrift/compiler/test/fixtures/no_metadata/gen-cpp2/module_types.h"
  
  namespace folly {
    class IOBuf;
    class IOBufQueue;
  }
  namespace apache { namespace thrift {
    class Cpp2RequestContext;
    class BinaryProtocolReader;
    class CompactProtocolReader;
    namespace transport { class THeader; }
  }}
  
  namespace cpp2 {
  
  class MyServiceSvAsyncIf {
   public:
    virtual ~MyServiceSvAsyncIf() {}
    virtual void async_tm_ping(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback) = 0;
    virtual folly::Future<folly::Unit> future_ping() = 0;
    virtual folly::SemiFuture<folly::Unit> semifuture_ping() = 0;
    virtual void async_tm_getRandomData(std::unique_ptr<apache::thrift::HandlerCallback<std::unique_ptr<::std::string>>> callback) = 0;
    virtual folly::Future<std::unique_ptr<::std::string>> future_getRandomData() = 0;
    virtual folly::SemiFuture<std::unique_ptr<::std::string>> semifuture_getRandomData() = 0;
    virtual void async_tm_hasDataById(std::unique_ptr<apache::thrift::HandlerCallback<bool>> callback, ::std::int64_t p_id) = 0;
    virtual folly::Future<bool> future_hasDataById(::std::int64_t p_id) = 0;
    virtual folly::SemiFuture<bool> semifuture_hasDataById(::std::int64_t p_id) = 0;
    virtual void async_tm_getDataById(std::unique_ptr<apache::thrift::HandlerCallback<std::unique_ptr<::std::string>>> callback, ::std::int64_t p_id) = 0;
    virtual folly::Future<std::unique_ptr<::std::string>> future_getDataById(::std::int64_t p_id) = 0;
    virtual folly::SemiFuture<std::unique_ptr<::std::string>> semifuture_getDataById(::std::int64_t p_id) = 0;
    virtual void async_tm_putDataById(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback, ::std::int64_t p_id, std::unique_ptr<::std::string> p_data) = 0;
    virtual folly::Future<folly::Unit> future_putDataById(::std::int64_t p_id, std::unique_ptr<::std::string> p_data) = 0;
    virtual folly::SemiFuture<folly::Unit> semifuture_putDataById(::std::int64_t p_id, std::unique_ptr<::std::string> p_data) = 0;
    virtual void async_tm_lobDataById(std::unique_ptr<apache::thrift::HandlerCallbackBase> callback, ::std::int64_t p_id, std::unique_ptr<::std::string> p_data) = 0;
    virtual folly::Future<folly::Unit> future_lobDataById(::std::int64_t p_id, std::unique_ptr<::std::string> p_data) = 0;
    virtual folly::SemiFuture<folly::Unit> semifuture_lobDataById(::std::int64_t p_id, std::unique_ptr<::std::string> p_data) = 0;
  };
  
  class MyServiceAsyncProcessor;
  
  class MyServiceSvIf : public MyServiceSvAsyncIf, public apache::thrift::ServerInterface {
   public:
    typedef MyServiceAsyncProcessor ProcessorType;
    std::unique_ptr<apache::thrift::AsyncProcessor> getProcessor() override;
    CreateMethodMetadataResult createMethodMetadata() override;
  
  
    virtual void ping();
    folly::Future<folly::Unit> future_ping() override;
    folly::SemiFuture<folly::Unit> semifuture_ping() override;
    void async_tm_ping(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback) override;
    virtual void getRandomData(::std::string& /*_return*/);
    folly::Future<std::unique_ptr<::std::string>> future_getRandomData() override;
    folly::SemiFuture<std::unique_ptr<::std::string>> semifuture_getRandomData() override;
    void async_tm_getRandomData(std::unique_ptr<apache::thrift::HandlerCallback<std::unique_ptr<::std::string>>> callback) override;
    virtual bool hasDataById(::std::int64_t /*id*/);
    folly::Future<bool> future_hasDataById(::std::int64_t p_id) override;
    folly::SemiFuture<bool> semifuture_hasDataById(::std::int64_t p_id) override;
    void async_tm_hasDataById(std::unique_ptr<apache::thrift::HandlerCallback<bool>> callback, ::std::int64_t p_id) override;
    virtual void getDataById(::std::string& /*_return*/, ::std::int64_t /*id*/);
    folly::Future<std::unique_ptr<::std::string>> future_getDataById(::std::int64_t p_id) override;
    folly::SemiFuture<std::unique_ptr<::std::string>> semifuture_getDataById(::std::int64_t p_id) override;
    void async_tm_getDataById(std::unique_ptr<apache::thrift::HandlerCallback<std::unique_ptr<::std::string>>> callback, ::std::int64_t p_id) override;
    virtual void putDataById(::std::int64_t /*id*/, std::unique_ptr<::std::string> /*data*/);
    folly::Future<folly::Unit> future_putDataById(::std::int64_t p_id, std::unique_ptr<::std::string> p_data) override;
    folly::SemiFuture<folly::Unit> semifuture_putDataById(::std::int64_t p_id, std::unique_ptr<::std::string> p_data) override;
    void async_tm_putDataById(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback, ::std::int64_t p_id, std::unique_ptr<::std::string> p_data) override;
    virtual void lobDataById(::std::int64_t /*id*/, std::unique_ptr<::std::string> /*data*/);
    folly::Future<folly::Unit> future_lobDataById(::std::int64_t p_id, std::unique_ptr<::std::string> p_data) override;
    folly::SemiFuture<folly::Unit> semifuture_lobDataById(::std::int64_t p_id, std::unique_ptr<::std::string> p_data) override;
    void async_tm_lobDataById(std::unique_ptr<apache::thrift::HandlerCallbackBase> callback, ::std::int64_t p_id, std::unique_ptr<::std::string> p_data) override;
   private:
    std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_ping{apache::thrift::detail::si::InvocationType::AsyncTm};
    std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_getRandomData{apache::thrift::detail::si::InvocationType::AsyncTm};
    std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_hasDataById{apache::thrift::detail::si::InvocationType::AsyncTm};
    std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_getDataById{apache::thrift::detail::si::InvocationType::AsyncTm};
    std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_putDataById{apache::thrift::detail::si::InvocationType::AsyncTm};
    std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_lobDataById{apache::thrift::detail::si::InvocationType::AsyncTm};
  };
  
  class MyServiceSvNull : public MyServiceSvIf {
   public:
    void ping() override;
    void getRandomData(::std::string& /*_return*/) override;
    bool hasDataById(::std::int64_t /*id*/) override;
    void getDataById(::std::string& /*_return*/, ::std::int64_t /*id*/) override;
    void putDataById(::std::int64_t /*id*/, std::unique_ptr<::std::string> /*data*/) override;
    void lobDataById(::std::int64_t /*id*/, std::unique_ptr<::std::string> /*data*/) override;
  };
  
  class MyServiceAsyncProcessor : public ::apache::thrift::GeneratedAsyncProcessor {
   public:
    const char* getServiceName() override;
    void getServiceMetadata(apache::thrift::metadata::ThriftServiceMetadataResponse& response) override;
    using BaseAsyncProcessor = void;
   protected:
    MyServiceSvIf* iface_;
   public:
    // This is implemented in case the corresponding AsyncProcessorFactory did not implement createMethodMetadata.
    // This can happen if the service is using a custom AsyncProcessorFactory but re-using the same AsyncProcessor.
    void processSerializedCompressedRequest(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::protocol::PROTOCOL_TYPES protType, apache::thrift::Cpp2RequestContext* context, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm) override;
    // By default, this overload will be called for generated services
    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;
   public:
    using ProcessFuncs = GeneratedAsyncProcessor::ProcessFuncs<MyServiceAsyncProcessor>;
    using ProcessMap = GeneratedAsyncProcessor::ProcessMap<ProcessFuncs>;
    static const MyServiceAsyncProcessor::ProcessMap& getOwnProcessMap();
   private:
    static const MyServiceAsyncProcessor::ProcessMap kOwnProcessMap_;
   private:
    template <typename ProtocolIn_, typename ProtocolOut_>
    void setUpAndProcess_ping(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 process_ping(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
    template <class ProtocolIn_, class ProtocolOut_>
    static apache::thrift::LegacySerializedResponse return_ping(int32_t protoSeqId, apache::thrift::ContextStack* ctx);
    template <class ProtocolIn_, class ProtocolOut_>
    static void throw_wrapped_ping(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_getRandomData(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 process_getRandomData(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
    template <class ProtocolIn_, class ProtocolOut_>
    static apache::thrift::LegacySerializedResponse return_getRandomData(int32_t protoSeqId, apache::thrift::ContextStack* ctx, ::std::string const& _return);
    template <class ProtocolIn_, class ProtocolOut_>
    static void throw_wrapped_getRandomData(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_hasDataById(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 process_hasDataById(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
    template <class ProtocolIn_, class ProtocolOut_>
    static apache::thrift::LegacySerializedResponse return_hasDataById(int32_t protoSeqId, apache::thrift::ContextStack* ctx, bool const& _return);
    template <class ProtocolIn_, class ProtocolOut_>
    static void throw_wrapped_hasDataById(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_getDataById(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 process_getDataById(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
    template <class ProtocolIn_, class ProtocolOut_>
    static apache::thrift::LegacySerializedResponse return_getDataById(int32_t protoSeqId, apache::thrift::ContextStack* ctx, ::std::string const& _return);
    template <class ProtocolIn_, class ProtocolOut_>
    static void throw_wrapped_getDataById(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_putDataById(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 process_putDataById(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
    template <class ProtocolIn_, class ProtocolOut_>
    static apache::thrift::LegacySerializedResponse return_putDataById(int32_t protoSeqId, apache::thrift::ContextStack* ctx);
    template <class ProtocolIn_, class ProtocolOut_>
    static void throw_wrapped_putDataById(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_lobDataById(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 process_lobDataById(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
   public:
    MyServiceAsyncProcessor(MyServiceSvIf* iface) :
        iface_(iface) {}
  
    virtual ~MyServiceAsyncProcessor() {}
  };
  
  } // cpp2
  