text: /**
   * Autogenerated by Thrift
   *
   * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
   *  @generated
   */
  
  #pragma once
  #include <src/gen-cpp2/MyService.h>
  #include <src/gen-cpp2/MyServicePrioParent.h>
  #include <src/gen-cpp2/MyServicePrioChild.h>
  #include <src/gen-cpp2/BadService.h>
  #include <folly/python/futures.h>
  #include <Python.h>
  
  #include <memory>
  
  namespace cpp2 {
  
  class MyServiceWrapper : virtual public MyServiceSvIf {
    protected:
      PyObject *if_object;
      folly::Executor *executor;
    public:
      explicit MyServiceWrapper(PyObject *if_object, folly::Executor *exc);
      void async_tm_ping(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback) override;
      void async_tm_getRandomData(std::unique_ptr<apache::thrift::HandlerCallback<std::unique_ptr<std::string>>> callback) override;
      void async_tm_hasDataById(std::unique_ptr<apache::thrift::HandlerCallback<bool>> callback
          , int64_t id
      ) override;
      void async_tm_getDataById(std::unique_ptr<apache::thrift::HandlerCallback<std::unique_ptr<std::string>>> callback
          , int64_t id
      ) override;
      void async_tm_putDataById(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback
          , int64_t id
          , std::unique_ptr<std::string> data
      ) override;
      void async_tm_lobDataById(std::unique_ptr<apache::thrift::HandlerCallbackBase> callback
          , int64_t id
          , std::unique_ptr<std::string> data
      ) override;
      void async_tm_cppDoNothing(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback) override;
  folly::SemiFuture<folly::Unit> semifuture_onStartServing() override;
  folly::SemiFuture<folly::Unit> semifuture_onStopRequested() override;
  };
  
  std::shared_ptr<apache::thrift::ServerInterface> MyServiceInterface(PyObject *if_object, folly::Executor *exc);
  
  
  class MyServicePrioParentWrapper : virtual public MyServicePrioParentSvIf {
    protected:
      PyObject *if_object;
      folly::Executor *executor;
    public:
      explicit MyServicePrioParentWrapper(PyObject *if_object, folly::Executor *exc);
      void async_tm_ping(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback) override;
      void async_tm_pong(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback) override;
  folly::SemiFuture<folly::Unit> semifuture_onStartServing() override;
  folly::SemiFuture<folly::Unit> semifuture_onStopRequested() override;
  };
  
  std::shared_ptr<apache::thrift::ServerInterface> MyServicePrioParentInterface(PyObject *if_object, folly::Executor *exc);
  
  
  class MyServicePrioChildWrapper : public ::cpp2::MyServicePrioParentWrapper, virtual public MyServicePrioChildSvIf {
    public:
      explicit MyServicePrioChildWrapper(PyObject *if_object, folly::Executor *exc);
      void async_tm_pang(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback) override;
  folly::SemiFuture<folly::Unit> semifuture_onStartServing() override;
  folly::SemiFuture<folly::Unit> semifuture_onStopRequested() override;
  };
  
  std::shared_ptr<apache::thrift::ServerInterface> MyServicePrioChildInterface(PyObject *if_object, folly::Executor *exc);
  
  
  class BadServiceWrapper : virtual public GoodServiceSvIf {
    protected:
      PyObject *if_object;
      folly::Executor *executor;
    public:
      explicit BadServiceWrapper(PyObject *if_object, folly::Executor *exc);
      void async_tm_bar(std::unique_ptr<apache::thrift::HandlerCallback<int32_t>> callback) override;
      std::unique_ptr<BadInteractionIf> createBadInteraction() override;
  folly::SemiFuture<folly::Unit> semifuture_onStartServing() override;
  folly::SemiFuture<folly::Unit> semifuture_onStopRequested() override;
  };
  
  std::shared_ptr<apache::thrift::ServerInterface> BadServiceInterface(PyObject *if_object, folly::Executor *exc);
  } // namespace cpp2
  