/**
 * 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 <folly/futures/Future.h>
#include <folly/futures/Promise.h>
#include <folly/Unit.h>
#include <thrift/lib/py3/client_wrapper.h>

#include <cstdint>
#include <functional>
#include <map>
#include <memory>
#include <set>
#include <vector>

namespace cpp2 {

class MyServiceClientWrapper : public ::thrift::py3::ClientWrapper {
  public:
    using ::thrift::py3::ClientWrapper::ClientWrapper;

    folly::SemiFuture<folly::Unit> ping(
      apache::thrift::RpcOptions& rpcOptions);
    folly::SemiFuture<std::string> getRandomData(
      apache::thrift::RpcOptions& rpcOptions);
    folly::SemiFuture<bool> hasDataById(
      apache::thrift::RpcOptions& rpcOptions,
      int64_t arg_id);
    folly::SemiFuture<std::string> getDataById(
      apache::thrift::RpcOptions& rpcOptions,
      int64_t arg_id);
    folly::SemiFuture<folly::Unit> putDataById(
      apache::thrift::RpcOptions& rpcOptions,
      int64_t arg_id,
      std::string arg_data);
    folly::SemiFuture<folly::Unit> lobDataById(
      apache::thrift::RpcOptions& rpcOptions,
      int64_t arg_id,
      std::string arg_data);
    folly::SemiFuture<folly::Unit> cppDoNothing(
      apache::thrift::RpcOptions& rpcOptions);
};


class MyServicePrioParentClientWrapper : public ::thrift::py3::ClientWrapper {
  public:
    using ::thrift::py3::ClientWrapper::ClientWrapper;

    folly::SemiFuture<folly::Unit> ping(
      apache::thrift::RpcOptions& rpcOptions);
    folly::SemiFuture<folly::Unit> pong(
      apache::thrift::RpcOptions& rpcOptions);
};


class MyServicePrioChildClientWrapper : public ::cpp2::MyServicePrioParentClientWrapper {
  public:
    using ::cpp2::MyServicePrioParentClientWrapper::MyServicePrioParentClientWrapper;

    folly::SemiFuture<folly::Unit> pang(
      apache::thrift::RpcOptions& rpcOptions);
};


} // namespace cpp2
