/**
 * Autogenerated by Thrift Compiler (0.16.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
#ifndef TCLIService_H
#define TCLIService_H

#include <thrift/TDispatchProcessor.h>
#include <thrift/async/TConcurrentClientSyncInfo.h>
#include <memory>
#include "TCLIService_types.h"

namespace apache { namespace hive { namespace service { namespace rpc { namespace thrift {

#ifdef _MSC_VER
  #pragma warning( push )
  #pragma warning (disable : 4250 ) //inheriting methods via dominance 
#endif

class TCLIServiceIf {
 public:
  virtual ~TCLIServiceIf() {}
  virtual void OpenSession(TOpenSessionResp& _return, const TOpenSessionReq& req) = 0;
  virtual void CloseSession(TCloseSessionResp& _return, const TCloseSessionReq& req) = 0;
  virtual void GetInfo(TGetInfoResp& _return, const TGetInfoReq& req) = 0;
  virtual void ExecuteStatement(TExecuteStatementResp& _return, const TExecuteStatementReq& req) = 0;
  virtual void GetTypeInfo(TGetTypeInfoResp& _return, const TGetTypeInfoReq& req) = 0;
  virtual void GetCatalogs(TGetCatalogsResp& _return, const TGetCatalogsReq& req) = 0;
  virtual void GetSchemas(TGetSchemasResp& _return, const TGetSchemasReq& req) = 0;
  virtual void GetTables(TGetTablesResp& _return, const TGetTablesReq& req) = 0;
  virtual void GetTableTypes(TGetTableTypesResp& _return, const TGetTableTypesReq& req) = 0;
  virtual void GetColumns(TGetColumnsResp& _return, const TGetColumnsReq& req) = 0;
  virtual void GetFunctions(TGetFunctionsResp& _return, const TGetFunctionsReq& req) = 0;
  virtual void GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req) = 0;
  virtual void GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req) = 0;
  virtual void GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req) = 0;
  virtual void CancelOperation(TCancelOperationResp& _return, const TCancelOperationReq& req) = 0;
  virtual void CloseOperation(TCloseOperationResp& _return, const TCloseOperationReq& req) = 0;
  virtual void GetResultSetMetadata(TGetResultSetMetadataResp& _return, const TGetResultSetMetadataReq& req) = 0;
  virtual void FetchResults(TFetchResultsResp& _return, const TFetchResultsReq& req) = 0;
  virtual void GetDelegationToken(TGetDelegationTokenResp& _return, const TGetDelegationTokenReq& req) = 0;
  virtual void CancelDelegationToken(TCancelDelegationTokenResp& _return, const TCancelDelegationTokenReq& req) = 0;
  virtual void RenewDelegationToken(TRenewDelegationTokenResp& _return, const TRenewDelegationTokenReq& req) = 0;
  virtual void GetQueryId(TGetQueryIdResp& _return, const TGetQueryIdReq& req) = 0;
  virtual void SetClientInfo(TSetClientInfoResp& _return, const TSetClientInfoReq& req) = 0;
};

class TCLIServiceIfFactory {
 public:
  typedef TCLIServiceIf Handler;

  virtual ~TCLIServiceIfFactory() {}

  virtual TCLIServiceIf* getHandler(const ::apache::thrift::TConnectionInfo& connInfo) = 0;
  virtual void releaseHandler(TCLIServiceIf* /* handler */) = 0;
  };

class TCLIServiceIfSingletonFactory : virtual public TCLIServiceIfFactory {
 public:
  TCLIServiceIfSingletonFactory(const ::std::shared_ptr<TCLIServiceIf>& iface) : iface_(iface) {}
  virtual ~TCLIServiceIfSingletonFactory() {}

  virtual TCLIServiceIf* getHandler(const ::apache::thrift::TConnectionInfo&) override {
    return iface_.get();
  }
  virtual void releaseHandler(TCLIServiceIf* /* handler */) override {}

 protected:
  ::std::shared_ptr<TCLIServiceIf> iface_;
};

class TCLIServiceNull : virtual public TCLIServiceIf {
 public:
  virtual ~TCLIServiceNull() {}
  void OpenSession(TOpenSessionResp& /* _return */, const TOpenSessionReq& /* req */) override {
    return;
  }
  void CloseSession(TCloseSessionResp& /* _return */, const TCloseSessionReq& /* req */) override {
    return;
  }
  void GetInfo(TGetInfoResp& /* _return */, const TGetInfoReq& /* req */) override {
    return;
  }
  void ExecuteStatement(TExecuteStatementResp& /* _return */, const TExecuteStatementReq& /* req */) override {
    return;
  }
  void GetTypeInfo(TGetTypeInfoResp& /* _return */, const TGetTypeInfoReq& /* req */) override {
    return;
  }
  void GetCatalogs(TGetCatalogsResp& /* _return */, const TGetCatalogsReq& /* req */) override {
    return;
  }
  void GetSchemas(TGetSchemasResp& /* _return */, const TGetSchemasReq& /* req */) override {
    return;
  }
  void GetTables(TGetTablesResp& /* _return */, const TGetTablesReq& /* req */) override {
    return;
  }
  void GetTableTypes(TGetTableTypesResp& /* _return */, const TGetTableTypesReq& /* req */) override {
    return;
  }
  void GetColumns(TGetColumnsResp& /* _return */, const TGetColumnsReq& /* req */) override {
    return;
  }
  void GetFunctions(TGetFunctionsResp& /* _return */, const TGetFunctionsReq& /* req */) override {
    return;
  }
  void GetPrimaryKeys(TGetPrimaryKeysResp& /* _return */, const TGetPrimaryKeysReq& /* req */) override {
    return;
  }
  void GetCrossReference(TGetCrossReferenceResp& /* _return */, const TGetCrossReferenceReq& /* req */) override {
    return;
  }
  void GetOperationStatus(TGetOperationStatusResp& /* _return */, const TGetOperationStatusReq& /* req */) override {
    return;
  }
  void CancelOperation(TCancelOperationResp& /* _return */, const TCancelOperationReq& /* req */) override {
    return;
  }
  void CloseOperation(TCloseOperationResp& /* _return */, const TCloseOperationReq& /* req */) override {
    return;
  }
  void GetResultSetMetadata(TGetResultSetMetadataResp& /* _return */, const TGetResultSetMetadataReq& /* req */) override {
    return;
  }
  void FetchResults(TFetchResultsResp& /* _return */, const TFetchResultsReq& /* req */) override {
    return;
  }
  void GetDelegationToken(TGetDelegationTokenResp& /* _return */, const TGetDelegationTokenReq& /* req */) override {
    return;
  }
  void CancelDelegationToken(TCancelDelegationTokenResp& /* _return */, const TCancelDelegationTokenReq& /* req */) override {
    return;
  }
  void RenewDelegationToken(TRenewDelegationTokenResp& /* _return */, const TRenewDelegationTokenReq& /* req */) override {
    return;
  }
  void GetQueryId(TGetQueryIdResp& /* _return */, const TGetQueryIdReq& /* req */) override {
    return;
  }
  void SetClientInfo(TSetClientInfoResp& /* _return */, const TSetClientInfoReq& /* req */) override {
    return;
  }
};

typedef struct _TCLIService_OpenSession_args__isset {
  _TCLIService_OpenSession_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_OpenSession_args__isset;

class TCLIService_OpenSession_args {
 public:

  TCLIService_OpenSession_args(const TCLIService_OpenSession_args&);
  TCLIService_OpenSession_args& operator=(const TCLIService_OpenSession_args&);
  TCLIService_OpenSession_args() noexcept {
  }

  virtual ~TCLIService_OpenSession_args() noexcept;
  TOpenSessionReq req;

  _TCLIService_OpenSession_args__isset __isset;

  void __set_req(const TOpenSessionReq& val);

  bool operator == (const TCLIService_OpenSession_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_OpenSession_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_OpenSession_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_OpenSession_pargs {
 public:


  virtual ~TCLIService_OpenSession_pargs() noexcept;
  const TOpenSessionReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_OpenSession_result__isset {
  _TCLIService_OpenSession_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_OpenSession_result__isset;

class TCLIService_OpenSession_result {
 public:

  TCLIService_OpenSession_result(const TCLIService_OpenSession_result&);
  TCLIService_OpenSession_result& operator=(const TCLIService_OpenSession_result&);
  TCLIService_OpenSession_result() noexcept {
  }

  virtual ~TCLIService_OpenSession_result() noexcept;
  TOpenSessionResp success;

  _TCLIService_OpenSession_result__isset __isset;

  void __set_success(const TOpenSessionResp& val);

  bool operator == (const TCLIService_OpenSession_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_OpenSession_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_OpenSession_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_OpenSession_presult__isset {
  _TCLIService_OpenSession_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_OpenSession_presult__isset;

class TCLIService_OpenSession_presult {
 public:


  virtual ~TCLIService_OpenSession_presult() noexcept;
  TOpenSessionResp* success;

  _TCLIService_OpenSession_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_CloseSession_args__isset {
  _TCLIService_CloseSession_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_CloseSession_args__isset;

class TCLIService_CloseSession_args {
 public:

  TCLIService_CloseSession_args(const TCLIService_CloseSession_args&);
  TCLIService_CloseSession_args& operator=(const TCLIService_CloseSession_args&);
  TCLIService_CloseSession_args() noexcept {
  }

  virtual ~TCLIService_CloseSession_args() noexcept;
  TCloseSessionReq req;

  _TCLIService_CloseSession_args__isset __isset;

  void __set_req(const TCloseSessionReq& val);

  bool operator == (const TCLIService_CloseSession_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_CloseSession_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_CloseSession_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_CloseSession_pargs {
 public:


  virtual ~TCLIService_CloseSession_pargs() noexcept;
  const TCloseSessionReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_CloseSession_result__isset {
  _TCLIService_CloseSession_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_CloseSession_result__isset;

class TCLIService_CloseSession_result {
 public:

  TCLIService_CloseSession_result(const TCLIService_CloseSession_result&);
  TCLIService_CloseSession_result& operator=(const TCLIService_CloseSession_result&);
  TCLIService_CloseSession_result() noexcept {
  }

  virtual ~TCLIService_CloseSession_result() noexcept;
  TCloseSessionResp success;

  _TCLIService_CloseSession_result__isset __isset;

  void __set_success(const TCloseSessionResp& val);

  bool operator == (const TCLIService_CloseSession_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_CloseSession_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_CloseSession_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_CloseSession_presult__isset {
  _TCLIService_CloseSession_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_CloseSession_presult__isset;

class TCLIService_CloseSession_presult {
 public:


  virtual ~TCLIService_CloseSession_presult() noexcept;
  TCloseSessionResp* success;

  _TCLIService_CloseSession_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetInfo_args__isset {
  _TCLIService_GetInfo_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetInfo_args__isset;

class TCLIService_GetInfo_args {
 public:

  TCLIService_GetInfo_args(const TCLIService_GetInfo_args&);
  TCLIService_GetInfo_args& operator=(const TCLIService_GetInfo_args&);
  TCLIService_GetInfo_args() noexcept {
  }

  virtual ~TCLIService_GetInfo_args() noexcept;
  TGetInfoReq req;

  _TCLIService_GetInfo_args__isset __isset;

  void __set_req(const TGetInfoReq& val);

  bool operator == (const TCLIService_GetInfo_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetInfo_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetInfo_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetInfo_pargs {
 public:


  virtual ~TCLIService_GetInfo_pargs() noexcept;
  const TGetInfoReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetInfo_result__isset {
  _TCLIService_GetInfo_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetInfo_result__isset;

class TCLIService_GetInfo_result {
 public:

  TCLIService_GetInfo_result(const TCLIService_GetInfo_result&);
  TCLIService_GetInfo_result& operator=(const TCLIService_GetInfo_result&);
  TCLIService_GetInfo_result() noexcept {
  }

  virtual ~TCLIService_GetInfo_result() noexcept;
  TGetInfoResp success;

  _TCLIService_GetInfo_result__isset __isset;

  void __set_success(const TGetInfoResp& val);

  bool operator == (const TCLIService_GetInfo_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetInfo_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetInfo_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetInfo_presult__isset {
  _TCLIService_GetInfo_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetInfo_presult__isset;

class TCLIService_GetInfo_presult {
 public:


  virtual ~TCLIService_GetInfo_presult() noexcept;
  TGetInfoResp* success;

  _TCLIService_GetInfo_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_ExecuteStatement_args__isset {
  _TCLIService_ExecuteStatement_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_ExecuteStatement_args__isset;

class TCLIService_ExecuteStatement_args {
 public:

  TCLIService_ExecuteStatement_args(const TCLIService_ExecuteStatement_args&);
  TCLIService_ExecuteStatement_args& operator=(const TCLIService_ExecuteStatement_args&);
  TCLIService_ExecuteStatement_args() noexcept {
  }

  virtual ~TCLIService_ExecuteStatement_args() noexcept;
  TExecuteStatementReq req;

  _TCLIService_ExecuteStatement_args__isset __isset;

  void __set_req(const TExecuteStatementReq& val);

  bool operator == (const TCLIService_ExecuteStatement_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_ExecuteStatement_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_ExecuteStatement_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_ExecuteStatement_pargs {
 public:


  virtual ~TCLIService_ExecuteStatement_pargs() noexcept;
  const TExecuteStatementReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_ExecuteStatement_result__isset {
  _TCLIService_ExecuteStatement_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_ExecuteStatement_result__isset;

class TCLIService_ExecuteStatement_result {
 public:

  TCLIService_ExecuteStatement_result(const TCLIService_ExecuteStatement_result&);
  TCLIService_ExecuteStatement_result& operator=(const TCLIService_ExecuteStatement_result&);
  TCLIService_ExecuteStatement_result() noexcept {
  }

  virtual ~TCLIService_ExecuteStatement_result() noexcept;
  TExecuteStatementResp success;

  _TCLIService_ExecuteStatement_result__isset __isset;

  void __set_success(const TExecuteStatementResp& val);

  bool operator == (const TCLIService_ExecuteStatement_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_ExecuteStatement_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_ExecuteStatement_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_ExecuteStatement_presult__isset {
  _TCLIService_ExecuteStatement_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_ExecuteStatement_presult__isset;

class TCLIService_ExecuteStatement_presult {
 public:


  virtual ~TCLIService_ExecuteStatement_presult() noexcept;
  TExecuteStatementResp* success;

  _TCLIService_ExecuteStatement_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetTypeInfo_args__isset {
  _TCLIService_GetTypeInfo_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetTypeInfo_args__isset;

class TCLIService_GetTypeInfo_args {
 public:

  TCLIService_GetTypeInfo_args(const TCLIService_GetTypeInfo_args&);
  TCLIService_GetTypeInfo_args& operator=(const TCLIService_GetTypeInfo_args&);
  TCLIService_GetTypeInfo_args() noexcept {
  }

  virtual ~TCLIService_GetTypeInfo_args() noexcept;
  TGetTypeInfoReq req;

  _TCLIService_GetTypeInfo_args__isset __isset;

  void __set_req(const TGetTypeInfoReq& val);

  bool operator == (const TCLIService_GetTypeInfo_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetTypeInfo_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetTypeInfo_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetTypeInfo_pargs {
 public:


  virtual ~TCLIService_GetTypeInfo_pargs() noexcept;
  const TGetTypeInfoReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetTypeInfo_result__isset {
  _TCLIService_GetTypeInfo_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetTypeInfo_result__isset;

class TCLIService_GetTypeInfo_result {
 public:

  TCLIService_GetTypeInfo_result(const TCLIService_GetTypeInfo_result&);
  TCLIService_GetTypeInfo_result& operator=(const TCLIService_GetTypeInfo_result&);
  TCLIService_GetTypeInfo_result() noexcept {
  }

  virtual ~TCLIService_GetTypeInfo_result() noexcept;
  TGetTypeInfoResp success;

  _TCLIService_GetTypeInfo_result__isset __isset;

  void __set_success(const TGetTypeInfoResp& val);

  bool operator == (const TCLIService_GetTypeInfo_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetTypeInfo_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetTypeInfo_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetTypeInfo_presult__isset {
  _TCLIService_GetTypeInfo_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetTypeInfo_presult__isset;

class TCLIService_GetTypeInfo_presult {
 public:


  virtual ~TCLIService_GetTypeInfo_presult() noexcept;
  TGetTypeInfoResp* success;

  _TCLIService_GetTypeInfo_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetCatalogs_args__isset {
  _TCLIService_GetCatalogs_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetCatalogs_args__isset;

class TCLIService_GetCatalogs_args {
 public:

  TCLIService_GetCatalogs_args(const TCLIService_GetCatalogs_args&);
  TCLIService_GetCatalogs_args& operator=(const TCLIService_GetCatalogs_args&);
  TCLIService_GetCatalogs_args() noexcept {
  }

  virtual ~TCLIService_GetCatalogs_args() noexcept;
  TGetCatalogsReq req;

  _TCLIService_GetCatalogs_args__isset __isset;

  void __set_req(const TGetCatalogsReq& val);

  bool operator == (const TCLIService_GetCatalogs_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetCatalogs_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetCatalogs_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetCatalogs_pargs {
 public:


  virtual ~TCLIService_GetCatalogs_pargs() noexcept;
  const TGetCatalogsReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetCatalogs_result__isset {
  _TCLIService_GetCatalogs_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetCatalogs_result__isset;

class TCLIService_GetCatalogs_result {
 public:

  TCLIService_GetCatalogs_result(const TCLIService_GetCatalogs_result&);
  TCLIService_GetCatalogs_result& operator=(const TCLIService_GetCatalogs_result&);
  TCLIService_GetCatalogs_result() noexcept {
  }

  virtual ~TCLIService_GetCatalogs_result() noexcept;
  TGetCatalogsResp success;

  _TCLIService_GetCatalogs_result__isset __isset;

  void __set_success(const TGetCatalogsResp& val);

  bool operator == (const TCLIService_GetCatalogs_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetCatalogs_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetCatalogs_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetCatalogs_presult__isset {
  _TCLIService_GetCatalogs_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetCatalogs_presult__isset;

class TCLIService_GetCatalogs_presult {
 public:


  virtual ~TCLIService_GetCatalogs_presult() noexcept;
  TGetCatalogsResp* success;

  _TCLIService_GetCatalogs_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetSchemas_args__isset {
  _TCLIService_GetSchemas_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetSchemas_args__isset;

class TCLIService_GetSchemas_args {
 public:

  TCLIService_GetSchemas_args(const TCLIService_GetSchemas_args&);
  TCLIService_GetSchemas_args& operator=(const TCLIService_GetSchemas_args&);
  TCLIService_GetSchemas_args() noexcept {
  }

  virtual ~TCLIService_GetSchemas_args() noexcept;
  TGetSchemasReq req;

  _TCLIService_GetSchemas_args__isset __isset;

  void __set_req(const TGetSchemasReq& val);

  bool operator == (const TCLIService_GetSchemas_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetSchemas_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetSchemas_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetSchemas_pargs {
 public:


  virtual ~TCLIService_GetSchemas_pargs() noexcept;
  const TGetSchemasReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetSchemas_result__isset {
  _TCLIService_GetSchemas_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetSchemas_result__isset;

class TCLIService_GetSchemas_result {
 public:

  TCLIService_GetSchemas_result(const TCLIService_GetSchemas_result&);
  TCLIService_GetSchemas_result& operator=(const TCLIService_GetSchemas_result&);
  TCLIService_GetSchemas_result() noexcept {
  }

  virtual ~TCLIService_GetSchemas_result() noexcept;
  TGetSchemasResp success;

  _TCLIService_GetSchemas_result__isset __isset;

  void __set_success(const TGetSchemasResp& val);

  bool operator == (const TCLIService_GetSchemas_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetSchemas_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetSchemas_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetSchemas_presult__isset {
  _TCLIService_GetSchemas_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetSchemas_presult__isset;

class TCLIService_GetSchemas_presult {
 public:


  virtual ~TCLIService_GetSchemas_presult() noexcept;
  TGetSchemasResp* success;

  _TCLIService_GetSchemas_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetTables_args__isset {
  _TCLIService_GetTables_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetTables_args__isset;

class TCLIService_GetTables_args {
 public:

  TCLIService_GetTables_args(const TCLIService_GetTables_args&);
  TCLIService_GetTables_args& operator=(const TCLIService_GetTables_args&);
  TCLIService_GetTables_args() noexcept {
  }

  virtual ~TCLIService_GetTables_args() noexcept;
  TGetTablesReq req;

  _TCLIService_GetTables_args__isset __isset;

  void __set_req(const TGetTablesReq& val);

  bool operator == (const TCLIService_GetTables_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetTables_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetTables_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetTables_pargs {
 public:


  virtual ~TCLIService_GetTables_pargs() noexcept;
  const TGetTablesReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetTables_result__isset {
  _TCLIService_GetTables_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetTables_result__isset;

class TCLIService_GetTables_result {
 public:

  TCLIService_GetTables_result(const TCLIService_GetTables_result&);
  TCLIService_GetTables_result& operator=(const TCLIService_GetTables_result&);
  TCLIService_GetTables_result() noexcept {
  }

  virtual ~TCLIService_GetTables_result() noexcept;
  TGetTablesResp success;

  _TCLIService_GetTables_result__isset __isset;

  void __set_success(const TGetTablesResp& val);

  bool operator == (const TCLIService_GetTables_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetTables_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetTables_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetTables_presult__isset {
  _TCLIService_GetTables_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetTables_presult__isset;

class TCLIService_GetTables_presult {
 public:


  virtual ~TCLIService_GetTables_presult() noexcept;
  TGetTablesResp* success;

  _TCLIService_GetTables_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetTableTypes_args__isset {
  _TCLIService_GetTableTypes_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetTableTypes_args__isset;

class TCLIService_GetTableTypes_args {
 public:

  TCLIService_GetTableTypes_args(const TCLIService_GetTableTypes_args&);
  TCLIService_GetTableTypes_args& operator=(const TCLIService_GetTableTypes_args&);
  TCLIService_GetTableTypes_args() noexcept {
  }

  virtual ~TCLIService_GetTableTypes_args() noexcept;
  TGetTableTypesReq req;

  _TCLIService_GetTableTypes_args__isset __isset;

  void __set_req(const TGetTableTypesReq& val);

  bool operator == (const TCLIService_GetTableTypes_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetTableTypes_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetTableTypes_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetTableTypes_pargs {
 public:


  virtual ~TCLIService_GetTableTypes_pargs() noexcept;
  const TGetTableTypesReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetTableTypes_result__isset {
  _TCLIService_GetTableTypes_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetTableTypes_result__isset;

class TCLIService_GetTableTypes_result {
 public:

  TCLIService_GetTableTypes_result(const TCLIService_GetTableTypes_result&);
  TCLIService_GetTableTypes_result& operator=(const TCLIService_GetTableTypes_result&);
  TCLIService_GetTableTypes_result() noexcept {
  }

  virtual ~TCLIService_GetTableTypes_result() noexcept;
  TGetTableTypesResp success;

  _TCLIService_GetTableTypes_result__isset __isset;

  void __set_success(const TGetTableTypesResp& val);

  bool operator == (const TCLIService_GetTableTypes_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetTableTypes_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetTableTypes_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetTableTypes_presult__isset {
  _TCLIService_GetTableTypes_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetTableTypes_presult__isset;

class TCLIService_GetTableTypes_presult {
 public:


  virtual ~TCLIService_GetTableTypes_presult() noexcept;
  TGetTableTypesResp* success;

  _TCLIService_GetTableTypes_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetColumns_args__isset {
  _TCLIService_GetColumns_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetColumns_args__isset;

class TCLIService_GetColumns_args {
 public:

  TCLIService_GetColumns_args(const TCLIService_GetColumns_args&);
  TCLIService_GetColumns_args& operator=(const TCLIService_GetColumns_args&);
  TCLIService_GetColumns_args() noexcept {
  }

  virtual ~TCLIService_GetColumns_args() noexcept;
  TGetColumnsReq req;

  _TCLIService_GetColumns_args__isset __isset;

  void __set_req(const TGetColumnsReq& val);

  bool operator == (const TCLIService_GetColumns_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetColumns_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetColumns_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetColumns_pargs {
 public:


  virtual ~TCLIService_GetColumns_pargs() noexcept;
  const TGetColumnsReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetColumns_result__isset {
  _TCLIService_GetColumns_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetColumns_result__isset;

class TCLIService_GetColumns_result {
 public:

  TCLIService_GetColumns_result(const TCLIService_GetColumns_result&);
  TCLIService_GetColumns_result& operator=(const TCLIService_GetColumns_result&);
  TCLIService_GetColumns_result() noexcept {
  }

  virtual ~TCLIService_GetColumns_result() noexcept;
  TGetColumnsResp success;

  _TCLIService_GetColumns_result__isset __isset;

  void __set_success(const TGetColumnsResp& val);

  bool operator == (const TCLIService_GetColumns_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetColumns_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetColumns_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetColumns_presult__isset {
  _TCLIService_GetColumns_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetColumns_presult__isset;

class TCLIService_GetColumns_presult {
 public:


  virtual ~TCLIService_GetColumns_presult() noexcept;
  TGetColumnsResp* success;

  _TCLIService_GetColumns_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetFunctions_args__isset {
  _TCLIService_GetFunctions_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetFunctions_args__isset;

class TCLIService_GetFunctions_args {
 public:

  TCLIService_GetFunctions_args(const TCLIService_GetFunctions_args&);
  TCLIService_GetFunctions_args& operator=(const TCLIService_GetFunctions_args&);
  TCLIService_GetFunctions_args() noexcept {
  }

  virtual ~TCLIService_GetFunctions_args() noexcept;
  TGetFunctionsReq req;

  _TCLIService_GetFunctions_args__isset __isset;

  void __set_req(const TGetFunctionsReq& val);

  bool operator == (const TCLIService_GetFunctions_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetFunctions_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetFunctions_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetFunctions_pargs {
 public:


  virtual ~TCLIService_GetFunctions_pargs() noexcept;
  const TGetFunctionsReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetFunctions_result__isset {
  _TCLIService_GetFunctions_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetFunctions_result__isset;

class TCLIService_GetFunctions_result {
 public:

  TCLIService_GetFunctions_result(const TCLIService_GetFunctions_result&);
  TCLIService_GetFunctions_result& operator=(const TCLIService_GetFunctions_result&);
  TCLIService_GetFunctions_result() noexcept {
  }

  virtual ~TCLIService_GetFunctions_result() noexcept;
  TGetFunctionsResp success;

  _TCLIService_GetFunctions_result__isset __isset;

  void __set_success(const TGetFunctionsResp& val);

  bool operator == (const TCLIService_GetFunctions_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetFunctions_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetFunctions_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetFunctions_presult__isset {
  _TCLIService_GetFunctions_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetFunctions_presult__isset;

class TCLIService_GetFunctions_presult {
 public:


  virtual ~TCLIService_GetFunctions_presult() noexcept;
  TGetFunctionsResp* success;

  _TCLIService_GetFunctions_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetPrimaryKeys_args__isset {
  _TCLIService_GetPrimaryKeys_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetPrimaryKeys_args__isset;

class TCLIService_GetPrimaryKeys_args {
 public:

  TCLIService_GetPrimaryKeys_args(const TCLIService_GetPrimaryKeys_args&);
  TCLIService_GetPrimaryKeys_args& operator=(const TCLIService_GetPrimaryKeys_args&);
  TCLIService_GetPrimaryKeys_args() noexcept {
  }

  virtual ~TCLIService_GetPrimaryKeys_args() noexcept;
  TGetPrimaryKeysReq req;

  _TCLIService_GetPrimaryKeys_args__isset __isset;

  void __set_req(const TGetPrimaryKeysReq& val);

  bool operator == (const TCLIService_GetPrimaryKeys_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetPrimaryKeys_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetPrimaryKeys_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetPrimaryKeys_pargs {
 public:


  virtual ~TCLIService_GetPrimaryKeys_pargs() noexcept;
  const TGetPrimaryKeysReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetPrimaryKeys_result__isset {
  _TCLIService_GetPrimaryKeys_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetPrimaryKeys_result__isset;

class TCLIService_GetPrimaryKeys_result {
 public:

  TCLIService_GetPrimaryKeys_result(const TCLIService_GetPrimaryKeys_result&);
  TCLIService_GetPrimaryKeys_result& operator=(const TCLIService_GetPrimaryKeys_result&);
  TCLIService_GetPrimaryKeys_result() noexcept {
  }

  virtual ~TCLIService_GetPrimaryKeys_result() noexcept;
  TGetPrimaryKeysResp success;

  _TCLIService_GetPrimaryKeys_result__isset __isset;

  void __set_success(const TGetPrimaryKeysResp& val);

  bool operator == (const TCLIService_GetPrimaryKeys_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetPrimaryKeys_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetPrimaryKeys_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetPrimaryKeys_presult__isset {
  _TCLIService_GetPrimaryKeys_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetPrimaryKeys_presult__isset;

class TCLIService_GetPrimaryKeys_presult {
 public:


  virtual ~TCLIService_GetPrimaryKeys_presult() noexcept;
  TGetPrimaryKeysResp* success;

  _TCLIService_GetPrimaryKeys_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetCrossReference_args__isset {
  _TCLIService_GetCrossReference_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetCrossReference_args__isset;

class TCLIService_GetCrossReference_args {
 public:

  TCLIService_GetCrossReference_args(const TCLIService_GetCrossReference_args&);
  TCLIService_GetCrossReference_args& operator=(const TCLIService_GetCrossReference_args&);
  TCLIService_GetCrossReference_args() noexcept {
  }

  virtual ~TCLIService_GetCrossReference_args() noexcept;
  TGetCrossReferenceReq req;

  _TCLIService_GetCrossReference_args__isset __isset;

  void __set_req(const TGetCrossReferenceReq& val);

  bool operator == (const TCLIService_GetCrossReference_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetCrossReference_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetCrossReference_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetCrossReference_pargs {
 public:


  virtual ~TCLIService_GetCrossReference_pargs() noexcept;
  const TGetCrossReferenceReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetCrossReference_result__isset {
  _TCLIService_GetCrossReference_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetCrossReference_result__isset;

class TCLIService_GetCrossReference_result {
 public:

  TCLIService_GetCrossReference_result(const TCLIService_GetCrossReference_result&);
  TCLIService_GetCrossReference_result& operator=(const TCLIService_GetCrossReference_result&);
  TCLIService_GetCrossReference_result() noexcept {
  }

  virtual ~TCLIService_GetCrossReference_result() noexcept;
  TGetCrossReferenceResp success;

  _TCLIService_GetCrossReference_result__isset __isset;

  void __set_success(const TGetCrossReferenceResp& val);

  bool operator == (const TCLIService_GetCrossReference_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetCrossReference_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetCrossReference_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetCrossReference_presult__isset {
  _TCLIService_GetCrossReference_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetCrossReference_presult__isset;

class TCLIService_GetCrossReference_presult {
 public:


  virtual ~TCLIService_GetCrossReference_presult() noexcept;
  TGetCrossReferenceResp* success;

  _TCLIService_GetCrossReference_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetOperationStatus_args__isset {
  _TCLIService_GetOperationStatus_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetOperationStatus_args__isset;

class TCLIService_GetOperationStatus_args {
 public:

  TCLIService_GetOperationStatus_args(const TCLIService_GetOperationStatus_args&);
  TCLIService_GetOperationStatus_args& operator=(const TCLIService_GetOperationStatus_args&);
  TCLIService_GetOperationStatus_args() noexcept {
  }

  virtual ~TCLIService_GetOperationStatus_args() noexcept;
  TGetOperationStatusReq req;

  _TCLIService_GetOperationStatus_args__isset __isset;

  void __set_req(const TGetOperationStatusReq& val);

  bool operator == (const TCLIService_GetOperationStatus_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetOperationStatus_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetOperationStatus_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetOperationStatus_pargs {
 public:


  virtual ~TCLIService_GetOperationStatus_pargs() noexcept;
  const TGetOperationStatusReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetOperationStatus_result__isset {
  _TCLIService_GetOperationStatus_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetOperationStatus_result__isset;

class TCLIService_GetOperationStatus_result {
 public:

  TCLIService_GetOperationStatus_result(const TCLIService_GetOperationStatus_result&);
  TCLIService_GetOperationStatus_result& operator=(const TCLIService_GetOperationStatus_result&);
  TCLIService_GetOperationStatus_result() noexcept {
  }

  virtual ~TCLIService_GetOperationStatus_result() noexcept;
  TGetOperationStatusResp success;

  _TCLIService_GetOperationStatus_result__isset __isset;

  void __set_success(const TGetOperationStatusResp& val);

  bool operator == (const TCLIService_GetOperationStatus_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetOperationStatus_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetOperationStatus_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetOperationStatus_presult__isset {
  _TCLIService_GetOperationStatus_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetOperationStatus_presult__isset;

class TCLIService_GetOperationStatus_presult {
 public:


  virtual ~TCLIService_GetOperationStatus_presult() noexcept;
  TGetOperationStatusResp* success;

  _TCLIService_GetOperationStatus_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_CancelOperation_args__isset {
  _TCLIService_CancelOperation_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_CancelOperation_args__isset;

class TCLIService_CancelOperation_args {
 public:

  TCLIService_CancelOperation_args(const TCLIService_CancelOperation_args&);
  TCLIService_CancelOperation_args& operator=(const TCLIService_CancelOperation_args&);
  TCLIService_CancelOperation_args() noexcept {
  }

  virtual ~TCLIService_CancelOperation_args() noexcept;
  TCancelOperationReq req;

  _TCLIService_CancelOperation_args__isset __isset;

  void __set_req(const TCancelOperationReq& val);

  bool operator == (const TCLIService_CancelOperation_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_CancelOperation_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_CancelOperation_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_CancelOperation_pargs {
 public:


  virtual ~TCLIService_CancelOperation_pargs() noexcept;
  const TCancelOperationReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_CancelOperation_result__isset {
  _TCLIService_CancelOperation_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_CancelOperation_result__isset;

class TCLIService_CancelOperation_result {
 public:

  TCLIService_CancelOperation_result(const TCLIService_CancelOperation_result&);
  TCLIService_CancelOperation_result& operator=(const TCLIService_CancelOperation_result&);
  TCLIService_CancelOperation_result() noexcept {
  }

  virtual ~TCLIService_CancelOperation_result() noexcept;
  TCancelOperationResp success;

  _TCLIService_CancelOperation_result__isset __isset;

  void __set_success(const TCancelOperationResp& val);

  bool operator == (const TCLIService_CancelOperation_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_CancelOperation_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_CancelOperation_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_CancelOperation_presult__isset {
  _TCLIService_CancelOperation_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_CancelOperation_presult__isset;

class TCLIService_CancelOperation_presult {
 public:


  virtual ~TCLIService_CancelOperation_presult() noexcept;
  TCancelOperationResp* success;

  _TCLIService_CancelOperation_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_CloseOperation_args__isset {
  _TCLIService_CloseOperation_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_CloseOperation_args__isset;

class TCLIService_CloseOperation_args {
 public:

  TCLIService_CloseOperation_args(const TCLIService_CloseOperation_args&);
  TCLIService_CloseOperation_args& operator=(const TCLIService_CloseOperation_args&);
  TCLIService_CloseOperation_args() noexcept {
  }

  virtual ~TCLIService_CloseOperation_args() noexcept;
  TCloseOperationReq req;

  _TCLIService_CloseOperation_args__isset __isset;

  void __set_req(const TCloseOperationReq& val);

  bool operator == (const TCLIService_CloseOperation_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_CloseOperation_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_CloseOperation_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_CloseOperation_pargs {
 public:


  virtual ~TCLIService_CloseOperation_pargs() noexcept;
  const TCloseOperationReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_CloseOperation_result__isset {
  _TCLIService_CloseOperation_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_CloseOperation_result__isset;

class TCLIService_CloseOperation_result {
 public:

  TCLIService_CloseOperation_result(const TCLIService_CloseOperation_result&);
  TCLIService_CloseOperation_result& operator=(const TCLIService_CloseOperation_result&);
  TCLIService_CloseOperation_result() noexcept {
  }

  virtual ~TCLIService_CloseOperation_result() noexcept;
  TCloseOperationResp success;

  _TCLIService_CloseOperation_result__isset __isset;

  void __set_success(const TCloseOperationResp& val);

  bool operator == (const TCLIService_CloseOperation_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_CloseOperation_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_CloseOperation_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_CloseOperation_presult__isset {
  _TCLIService_CloseOperation_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_CloseOperation_presult__isset;

class TCLIService_CloseOperation_presult {
 public:


  virtual ~TCLIService_CloseOperation_presult() noexcept;
  TCloseOperationResp* success;

  _TCLIService_CloseOperation_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetResultSetMetadata_args__isset {
  _TCLIService_GetResultSetMetadata_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetResultSetMetadata_args__isset;

class TCLIService_GetResultSetMetadata_args {
 public:

  TCLIService_GetResultSetMetadata_args(const TCLIService_GetResultSetMetadata_args&);
  TCLIService_GetResultSetMetadata_args& operator=(const TCLIService_GetResultSetMetadata_args&);
  TCLIService_GetResultSetMetadata_args() noexcept {
  }

  virtual ~TCLIService_GetResultSetMetadata_args() noexcept;
  TGetResultSetMetadataReq req;

  _TCLIService_GetResultSetMetadata_args__isset __isset;

  void __set_req(const TGetResultSetMetadataReq& val);

  bool operator == (const TCLIService_GetResultSetMetadata_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetResultSetMetadata_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetResultSetMetadata_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetResultSetMetadata_pargs {
 public:


  virtual ~TCLIService_GetResultSetMetadata_pargs() noexcept;
  const TGetResultSetMetadataReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetResultSetMetadata_result__isset {
  _TCLIService_GetResultSetMetadata_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetResultSetMetadata_result__isset;

class TCLIService_GetResultSetMetadata_result {
 public:

  TCLIService_GetResultSetMetadata_result(const TCLIService_GetResultSetMetadata_result&);
  TCLIService_GetResultSetMetadata_result& operator=(const TCLIService_GetResultSetMetadata_result&);
  TCLIService_GetResultSetMetadata_result() noexcept {
  }

  virtual ~TCLIService_GetResultSetMetadata_result() noexcept;
  TGetResultSetMetadataResp success;

  _TCLIService_GetResultSetMetadata_result__isset __isset;

  void __set_success(const TGetResultSetMetadataResp& val);

  bool operator == (const TCLIService_GetResultSetMetadata_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetResultSetMetadata_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetResultSetMetadata_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetResultSetMetadata_presult__isset {
  _TCLIService_GetResultSetMetadata_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetResultSetMetadata_presult__isset;

class TCLIService_GetResultSetMetadata_presult {
 public:


  virtual ~TCLIService_GetResultSetMetadata_presult() noexcept;
  TGetResultSetMetadataResp* success;

  _TCLIService_GetResultSetMetadata_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_FetchResults_args__isset {
  _TCLIService_FetchResults_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_FetchResults_args__isset;

class TCLIService_FetchResults_args {
 public:

  TCLIService_FetchResults_args(const TCLIService_FetchResults_args&);
  TCLIService_FetchResults_args& operator=(const TCLIService_FetchResults_args&);
  TCLIService_FetchResults_args() noexcept {
  }

  virtual ~TCLIService_FetchResults_args() noexcept;
  TFetchResultsReq req;

  _TCLIService_FetchResults_args__isset __isset;

  void __set_req(const TFetchResultsReq& val);

  bool operator == (const TCLIService_FetchResults_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_FetchResults_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_FetchResults_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_FetchResults_pargs {
 public:


  virtual ~TCLIService_FetchResults_pargs() noexcept;
  const TFetchResultsReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_FetchResults_result__isset {
  _TCLIService_FetchResults_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_FetchResults_result__isset;

class TCLIService_FetchResults_result {
 public:

  TCLIService_FetchResults_result(const TCLIService_FetchResults_result&);
  TCLIService_FetchResults_result& operator=(const TCLIService_FetchResults_result&);
  TCLIService_FetchResults_result() noexcept {
  }

  virtual ~TCLIService_FetchResults_result() noexcept;
  TFetchResultsResp success;

  _TCLIService_FetchResults_result__isset __isset;

  void __set_success(const TFetchResultsResp& val);

  bool operator == (const TCLIService_FetchResults_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_FetchResults_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_FetchResults_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_FetchResults_presult__isset {
  _TCLIService_FetchResults_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_FetchResults_presult__isset;

class TCLIService_FetchResults_presult {
 public:


  virtual ~TCLIService_FetchResults_presult() noexcept;
  TFetchResultsResp* success;

  _TCLIService_FetchResults_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetDelegationToken_args__isset {
  _TCLIService_GetDelegationToken_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetDelegationToken_args__isset;

class TCLIService_GetDelegationToken_args {
 public:

  TCLIService_GetDelegationToken_args(const TCLIService_GetDelegationToken_args&);
  TCLIService_GetDelegationToken_args& operator=(const TCLIService_GetDelegationToken_args&);
  TCLIService_GetDelegationToken_args() noexcept {
  }

  virtual ~TCLIService_GetDelegationToken_args() noexcept;
  TGetDelegationTokenReq req;

  _TCLIService_GetDelegationToken_args__isset __isset;

  void __set_req(const TGetDelegationTokenReq& val);

  bool operator == (const TCLIService_GetDelegationToken_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetDelegationToken_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetDelegationToken_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetDelegationToken_pargs {
 public:


  virtual ~TCLIService_GetDelegationToken_pargs() noexcept;
  const TGetDelegationTokenReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetDelegationToken_result__isset {
  _TCLIService_GetDelegationToken_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetDelegationToken_result__isset;

class TCLIService_GetDelegationToken_result {
 public:

  TCLIService_GetDelegationToken_result(const TCLIService_GetDelegationToken_result&);
  TCLIService_GetDelegationToken_result& operator=(const TCLIService_GetDelegationToken_result&);
  TCLIService_GetDelegationToken_result() noexcept {
  }

  virtual ~TCLIService_GetDelegationToken_result() noexcept;
  TGetDelegationTokenResp success;

  _TCLIService_GetDelegationToken_result__isset __isset;

  void __set_success(const TGetDelegationTokenResp& val);

  bool operator == (const TCLIService_GetDelegationToken_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetDelegationToken_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetDelegationToken_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetDelegationToken_presult__isset {
  _TCLIService_GetDelegationToken_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetDelegationToken_presult__isset;

class TCLIService_GetDelegationToken_presult {
 public:


  virtual ~TCLIService_GetDelegationToken_presult() noexcept;
  TGetDelegationTokenResp* success;

  _TCLIService_GetDelegationToken_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_CancelDelegationToken_args__isset {
  _TCLIService_CancelDelegationToken_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_CancelDelegationToken_args__isset;

class TCLIService_CancelDelegationToken_args {
 public:

  TCLIService_CancelDelegationToken_args(const TCLIService_CancelDelegationToken_args&);
  TCLIService_CancelDelegationToken_args& operator=(const TCLIService_CancelDelegationToken_args&);
  TCLIService_CancelDelegationToken_args() noexcept {
  }

  virtual ~TCLIService_CancelDelegationToken_args() noexcept;
  TCancelDelegationTokenReq req;

  _TCLIService_CancelDelegationToken_args__isset __isset;

  void __set_req(const TCancelDelegationTokenReq& val);

  bool operator == (const TCLIService_CancelDelegationToken_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_CancelDelegationToken_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_CancelDelegationToken_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_CancelDelegationToken_pargs {
 public:


  virtual ~TCLIService_CancelDelegationToken_pargs() noexcept;
  const TCancelDelegationTokenReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_CancelDelegationToken_result__isset {
  _TCLIService_CancelDelegationToken_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_CancelDelegationToken_result__isset;

class TCLIService_CancelDelegationToken_result {
 public:

  TCLIService_CancelDelegationToken_result(const TCLIService_CancelDelegationToken_result&);
  TCLIService_CancelDelegationToken_result& operator=(const TCLIService_CancelDelegationToken_result&);
  TCLIService_CancelDelegationToken_result() noexcept {
  }

  virtual ~TCLIService_CancelDelegationToken_result() noexcept;
  TCancelDelegationTokenResp success;

  _TCLIService_CancelDelegationToken_result__isset __isset;

  void __set_success(const TCancelDelegationTokenResp& val);

  bool operator == (const TCLIService_CancelDelegationToken_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_CancelDelegationToken_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_CancelDelegationToken_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_CancelDelegationToken_presult__isset {
  _TCLIService_CancelDelegationToken_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_CancelDelegationToken_presult__isset;

class TCLIService_CancelDelegationToken_presult {
 public:


  virtual ~TCLIService_CancelDelegationToken_presult() noexcept;
  TCancelDelegationTokenResp* success;

  _TCLIService_CancelDelegationToken_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_RenewDelegationToken_args__isset {
  _TCLIService_RenewDelegationToken_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_RenewDelegationToken_args__isset;

class TCLIService_RenewDelegationToken_args {
 public:

  TCLIService_RenewDelegationToken_args(const TCLIService_RenewDelegationToken_args&);
  TCLIService_RenewDelegationToken_args& operator=(const TCLIService_RenewDelegationToken_args&);
  TCLIService_RenewDelegationToken_args() noexcept {
  }

  virtual ~TCLIService_RenewDelegationToken_args() noexcept;
  TRenewDelegationTokenReq req;

  _TCLIService_RenewDelegationToken_args__isset __isset;

  void __set_req(const TRenewDelegationTokenReq& val);

  bool operator == (const TCLIService_RenewDelegationToken_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_RenewDelegationToken_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_RenewDelegationToken_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_RenewDelegationToken_pargs {
 public:


  virtual ~TCLIService_RenewDelegationToken_pargs() noexcept;
  const TRenewDelegationTokenReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_RenewDelegationToken_result__isset {
  _TCLIService_RenewDelegationToken_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_RenewDelegationToken_result__isset;

class TCLIService_RenewDelegationToken_result {
 public:

  TCLIService_RenewDelegationToken_result(const TCLIService_RenewDelegationToken_result&);
  TCLIService_RenewDelegationToken_result& operator=(const TCLIService_RenewDelegationToken_result&);
  TCLIService_RenewDelegationToken_result() noexcept {
  }

  virtual ~TCLIService_RenewDelegationToken_result() noexcept;
  TRenewDelegationTokenResp success;

  _TCLIService_RenewDelegationToken_result__isset __isset;

  void __set_success(const TRenewDelegationTokenResp& val);

  bool operator == (const TCLIService_RenewDelegationToken_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_RenewDelegationToken_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_RenewDelegationToken_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_RenewDelegationToken_presult__isset {
  _TCLIService_RenewDelegationToken_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_RenewDelegationToken_presult__isset;

class TCLIService_RenewDelegationToken_presult {
 public:


  virtual ~TCLIService_RenewDelegationToken_presult() noexcept;
  TRenewDelegationTokenResp* success;

  _TCLIService_RenewDelegationToken_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_GetQueryId_args__isset {
  _TCLIService_GetQueryId_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_GetQueryId_args__isset;

class TCLIService_GetQueryId_args {
 public:

  TCLIService_GetQueryId_args(const TCLIService_GetQueryId_args&);
  TCLIService_GetQueryId_args& operator=(const TCLIService_GetQueryId_args&);
  TCLIService_GetQueryId_args() noexcept {
  }

  virtual ~TCLIService_GetQueryId_args() noexcept;
  TGetQueryIdReq req;

  _TCLIService_GetQueryId_args__isset __isset;

  void __set_req(const TGetQueryIdReq& val);

  bool operator == (const TCLIService_GetQueryId_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetQueryId_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetQueryId_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_GetQueryId_pargs {
 public:


  virtual ~TCLIService_GetQueryId_pargs() noexcept;
  const TGetQueryIdReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetQueryId_result__isset {
  _TCLIService_GetQueryId_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetQueryId_result__isset;

class TCLIService_GetQueryId_result {
 public:

  TCLIService_GetQueryId_result(const TCLIService_GetQueryId_result&);
  TCLIService_GetQueryId_result& operator=(const TCLIService_GetQueryId_result&);
  TCLIService_GetQueryId_result() noexcept {
  }

  virtual ~TCLIService_GetQueryId_result() noexcept;
  TGetQueryIdResp success;

  _TCLIService_GetQueryId_result__isset __isset;

  void __set_success(const TGetQueryIdResp& val);

  bool operator == (const TCLIService_GetQueryId_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_GetQueryId_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_GetQueryId_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_GetQueryId_presult__isset {
  _TCLIService_GetQueryId_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_GetQueryId_presult__isset;

class TCLIService_GetQueryId_presult {
 public:


  virtual ~TCLIService_GetQueryId_presult() noexcept;
  TGetQueryIdResp* success;

  _TCLIService_GetQueryId_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

typedef struct _TCLIService_SetClientInfo_args__isset {
  _TCLIService_SetClientInfo_args__isset() : req(false) {}
  bool req :1;
} _TCLIService_SetClientInfo_args__isset;

class TCLIService_SetClientInfo_args {
 public:

  TCLIService_SetClientInfo_args(const TCLIService_SetClientInfo_args&);
  TCLIService_SetClientInfo_args& operator=(const TCLIService_SetClientInfo_args&);
  TCLIService_SetClientInfo_args() noexcept {
  }

  virtual ~TCLIService_SetClientInfo_args() noexcept;
  TSetClientInfoReq req;

  _TCLIService_SetClientInfo_args__isset __isset;

  void __set_req(const TSetClientInfoReq& val);

  bool operator == (const TCLIService_SetClientInfo_args & rhs) const
  {
    if (!(req == rhs.req))
      return false;
    return true;
  }
  bool operator != (const TCLIService_SetClientInfo_args &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_SetClientInfo_args & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};


class TCLIService_SetClientInfo_pargs {
 public:


  virtual ~TCLIService_SetClientInfo_pargs() noexcept;
  const TSetClientInfoReq* req;

  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_SetClientInfo_result__isset {
  _TCLIService_SetClientInfo_result__isset() : success(false) {}
  bool success :1;
} _TCLIService_SetClientInfo_result__isset;

class TCLIService_SetClientInfo_result {
 public:

  TCLIService_SetClientInfo_result(const TCLIService_SetClientInfo_result&);
  TCLIService_SetClientInfo_result& operator=(const TCLIService_SetClientInfo_result&);
  TCLIService_SetClientInfo_result() noexcept {
  }

  virtual ~TCLIService_SetClientInfo_result() noexcept;
  TSetClientInfoResp success;

  _TCLIService_SetClientInfo_result__isset __isset;

  void __set_success(const TSetClientInfoResp& val);

  bool operator == (const TCLIService_SetClientInfo_result & rhs) const
  {
    if (!(success == rhs.success))
      return false;
    return true;
  }
  bool operator != (const TCLIService_SetClientInfo_result &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const TCLIService_SetClientInfo_result & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

};

typedef struct _TCLIService_SetClientInfo_presult__isset {
  _TCLIService_SetClientInfo_presult__isset() : success(false) {}
  bool success :1;
} _TCLIService_SetClientInfo_presult__isset;

class TCLIService_SetClientInfo_presult {
 public:


  virtual ~TCLIService_SetClientInfo_presult() noexcept;
  TSetClientInfoResp* success;

  _TCLIService_SetClientInfo_presult__isset __isset;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);

};

class TCLIServiceClient : virtual public TCLIServiceIf {
 public:
  TCLIServiceClient(std::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) {
    setProtocol(prot);
  }
  TCLIServiceClient(std::shared_ptr< ::apache::thrift::protocol::TProtocol> iprot, std::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
    setProtocol(iprot,oprot);
  }
 private:
  void setProtocol(std::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) {
  setProtocol(prot,prot);
  }
  void setProtocol(std::shared_ptr< ::apache::thrift::protocol::TProtocol> iprot, std::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
    piprot_=iprot;
    poprot_=oprot;
    iprot_ = iprot.get();
    oprot_ = oprot.get();
  }
 public:
  std::shared_ptr< ::apache::thrift::protocol::TProtocol> getInputProtocol() {
    return piprot_;
  }
  std::shared_ptr< ::apache::thrift::protocol::TProtocol> getOutputProtocol() {
    return poprot_;
  }
  void OpenSession(TOpenSessionResp& _return, const TOpenSessionReq& req) override;
  void send_OpenSession(const TOpenSessionReq& req);
  void recv_OpenSession(TOpenSessionResp& _return);
  void CloseSession(TCloseSessionResp& _return, const TCloseSessionReq& req) override;
  void send_CloseSession(const TCloseSessionReq& req);
  void recv_CloseSession(TCloseSessionResp& _return);
  void GetInfo(TGetInfoResp& _return, const TGetInfoReq& req) override;
  void send_GetInfo(const TGetInfoReq& req);
  void recv_GetInfo(TGetInfoResp& _return);
  void ExecuteStatement(TExecuteStatementResp& _return, const TExecuteStatementReq& req) override;
  void send_ExecuteStatement(const TExecuteStatementReq& req);
  void recv_ExecuteStatement(TExecuteStatementResp& _return);
  void GetTypeInfo(TGetTypeInfoResp& _return, const TGetTypeInfoReq& req) override;
  void send_GetTypeInfo(const TGetTypeInfoReq& req);
  void recv_GetTypeInfo(TGetTypeInfoResp& _return);
  void GetCatalogs(TGetCatalogsResp& _return, const TGetCatalogsReq& req) override;
  void send_GetCatalogs(const TGetCatalogsReq& req);
  void recv_GetCatalogs(TGetCatalogsResp& _return);
  void GetSchemas(TGetSchemasResp& _return, const TGetSchemasReq& req) override;
  void send_GetSchemas(const TGetSchemasReq& req);
  void recv_GetSchemas(TGetSchemasResp& _return);
  void GetTables(TGetTablesResp& _return, const TGetTablesReq& req) override;
  void send_GetTables(const TGetTablesReq& req);
  void recv_GetTables(TGetTablesResp& _return);
  void GetTableTypes(TGetTableTypesResp& _return, const TGetTableTypesReq& req) override;
  void send_GetTableTypes(const TGetTableTypesReq& req);
  void recv_GetTableTypes(TGetTableTypesResp& _return);
  void GetColumns(TGetColumnsResp& _return, const TGetColumnsReq& req) override;
  void send_GetColumns(const TGetColumnsReq& req);
  void recv_GetColumns(TGetColumnsResp& _return);
  void GetFunctions(TGetFunctionsResp& _return, const TGetFunctionsReq& req) override;
  void send_GetFunctions(const TGetFunctionsReq& req);
  void recv_GetFunctions(TGetFunctionsResp& _return);
  void GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req) override;
  void send_GetPrimaryKeys(const TGetPrimaryKeysReq& req);
  void recv_GetPrimaryKeys(TGetPrimaryKeysResp& _return);
  void GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req) override;
  void send_GetCrossReference(const TGetCrossReferenceReq& req);
  void recv_GetCrossReference(TGetCrossReferenceResp& _return);
  void GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req) override;
  void send_GetOperationStatus(const TGetOperationStatusReq& req);
  void recv_GetOperationStatus(TGetOperationStatusResp& _return);
  void CancelOperation(TCancelOperationResp& _return, const TCancelOperationReq& req) override;
  void send_CancelOperation(const TCancelOperationReq& req);
  void recv_CancelOperation(TCancelOperationResp& _return);
  void CloseOperation(TCloseOperationResp& _return, const TCloseOperationReq& req) override;
  void send_CloseOperation(const TCloseOperationReq& req);
  void recv_CloseOperation(TCloseOperationResp& _return);
  void GetResultSetMetadata(TGetResultSetMetadataResp& _return, const TGetResultSetMetadataReq& req) override;
  void send_GetResultSetMetadata(const TGetResultSetMetadataReq& req);
  void recv_GetResultSetMetadata(TGetResultSetMetadataResp& _return);
  void FetchResults(TFetchResultsResp& _return, const TFetchResultsReq& req) override;
  void send_FetchResults(const TFetchResultsReq& req);
  void recv_FetchResults(TFetchResultsResp& _return);
  void GetDelegationToken(TGetDelegationTokenResp& _return, const TGetDelegationTokenReq& req) override;
  void send_GetDelegationToken(const TGetDelegationTokenReq& req);
  void recv_GetDelegationToken(TGetDelegationTokenResp& _return);
  void CancelDelegationToken(TCancelDelegationTokenResp& _return, const TCancelDelegationTokenReq& req) override;
  void send_CancelDelegationToken(const TCancelDelegationTokenReq& req);
  void recv_CancelDelegationToken(TCancelDelegationTokenResp& _return);
  void RenewDelegationToken(TRenewDelegationTokenResp& _return, const TRenewDelegationTokenReq& req) override;
  void send_RenewDelegationToken(const TRenewDelegationTokenReq& req);
  void recv_RenewDelegationToken(TRenewDelegationTokenResp& _return);
  void GetQueryId(TGetQueryIdResp& _return, const TGetQueryIdReq& req) override;
  void send_GetQueryId(const TGetQueryIdReq& req);
  void recv_GetQueryId(TGetQueryIdResp& _return);
  void SetClientInfo(TSetClientInfoResp& _return, const TSetClientInfoReq& req) override;
  void send_SetClientInfo(const TSetClientInfoReq& req);
  void recv_SetClientInfo(TSetClientInfoResp& _return);
 protected:
  std::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
  std::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;
  ::apache::thrift::protocol::TProtocol* iprot_;
  ::apache::thrift::protocol::TProtocol* oprot_;
};

class TCLIServiceProcessor : public ::apache::thrift::TDispatchProcessor {
 protected:
  ::std::shared_ptr<TCLIServiceIf> iface_;
  virtual bool dispatchCall(::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, const std::string& fname, int32_t seqid, void* callContext) override;
 private:
  typedef  void (TCLIServiceProcessor::*ProcessFunction)(int32_t, ::apache::thrift::protocol::TProtocol*, ::apache::thrift::protocol::TProtocol*, void*);
  typedef std::map<std::string, ProcessFunction> ProcessMap;
  ProcessMap processMap_;
  void process_OpenSession(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_CloseSession(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetInfo(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_ExecuteStatement(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetTypeInfo(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetCatalogs(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetSchemas(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetTables(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetTableTypes(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetColumns(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetFunctions(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetPrimaryKeys(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetCrossReference(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetOperationStatus(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_CancelOperation(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_CloseOperation(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetResultSetMetadata(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_FetchResults(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetDelegationToken(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_CancelDelegationToken(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_RenewDelegationToken(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_GetQueryId(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  void process_SetClientInfo(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
 public:
  TCLIServiceProcessor(::std::shared_ptr<TCLIServiceIf> iface) :
    iface_(iface) {
    processMap_["OpenSession"] = &TCLIServiceProcessor::process_OpenSession;
    processMap_["CloseSession"] = &TCLIServiceProcessor::process_CloseSession;
    processMap_["GetInfo"] = &TCLIServiceProcessor::process_GetInfo;
    processMap_["ExecuteStatement"] = &TCLIServiceProcessor::process_ExecuteStatement;
    processMap_["GetTypeInfo"] = &TCLIServiceProcessor::process_GetTypeInfo;
    processMap_["GetCatalogs"] = &TCLIServiceProcessor::process_GetCatalogs;
    processMap_["GetSchemas"] = &TCLIServiceProcessor::process_GetSchemas;
    processMap_["GetTables"] = &TCLIServiceProcessor::process_GetTables;
    processMap_["GetTableTypes"] = &TCLIServiceProcessor::process_GetTableTypes;
    processMap_["GetColumns"] = &TCLIServiceProcessor::process_GetColumns;
    processMap_["GetFunctions"] = &TCLIServiceProcessor::process_GetFunctions;
    processMap_["GetPrimaryKeys"] = &TCLIServiceProcessor::process_GetPrimaryKeys;
    processMap_["GetCrossReference"] = &TCLIServiceProcessor::process_GetCrossReference;
    processMap_["GetOperationStatus"] = &TCLIServiceProcessor::process_GetOperationStatus;
    processMap_["CancelOperation"] = &TCLIServiceProcessor::process_CancelOperation;
    processMap_["CloseOperation"] = &TCLIServiceProcessor::process_CloseOperation;
    processMap_["GetResultSetMetadata"] = &TCLIServiceProcessor::process_GetResultSetMetadata;
    processMap_["FetchResults"] = &TCLIServiceProcessor::process_FetchResults;
    processMap_["GetDelegationToken"] = &TCLIServiceProcessor::process_GetDelegationToken;
    processMap_["CancelDelegationToken"] = &TCLIServiceProcessor::process_CancelDelegationToken;
    processMap_["RenewDelegationToken"] = &TCLIServiceProcessor::process_RenewDelegationToken;
    processMap_["GetQueryId"] = &TCLIServiceProcessor::process_GetQueryId;
    processMap_["SetClientInfo"] = &TCLIServiceProcessor::process_SetClientInfo;
  }

  virtual ~TCLIServiceProcessor() {}
};

class TCLIServiceProcessorFactory : public ::apache::thrift::TProcessorFactory {
 public:
  TCLIServiceProcessorFactory(const ::std::shared_ptr< TCLIServiceIfFactory >& handlerFactory) noexcept :
      handlerFactory_(handlerFactory) {}

  ::std::shared_ptr< ::apache::thrift::TProcessor > getProcessor(const ::apache::thrift::TConnectionInfo& connInfo) override;

 protected:
  ::std::shared_ptr< TCLIServiceIfFactory > handlerFactory_;
};

class TCLIServiceMultiface : virtual public TCLIServiceIf {
 public:
  TCLIServiceMultiface(std::vector<std::shared_ptr<TCLIServiceIf> >& ifaces) : ifaces_(ifaces) {
  }
  virtual ~TCLIServiceMultiface() {}
 protected:
  std::vector<std::shared_ptr<TCLIServiceIf> > ifaces_;
  TCLIServiceMultiface() {}
  void add(::std::shared_ptr<TCLIServiceIf> iface) {
    ifaces_.push_back(iface);
  }
 public:
  void OpenSession(TOpenSessionResp& _return, const TOpenSessionReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->OpenSession(_return, req);
    }
    ifaces_[i]->OpenSession(_return, req);
    return;
  }

  void CloseSession(TCloseSessionResp& _return, const TCloseSessionReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->CloseSession(_return, req);
    }
    ifaces_[i]->CloseSession(_return, req);
    return;
  }

  void GetInfo(TGetInfoResp& _return, const TGetInfoReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetInfo(_return, req);
    }
    ifaces_[i]->GetInfo(_return, req);
    return;
  }

  void ExecuteStatement(TExecuteStatementResp& _return, const TExecuteStatementReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->ExecuteStatement(_return, req);
    }
    ifaces_[i]->ExecuteStatement(_return, req);
    return;
  }

  void GetTypeInfo(TGetTypeInfoResp& _return, const TGetTypeInfoReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetTypeInfo(_return, req);
    }
    ifaces_[i]->GetTypeInfo(_return, req);
    return;
  }

  void GetCatalogs(TGetCatalogsResp& _return, const TGetCatalogsReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetCatalogs(_return, req);
    }
    ifaces_[i]->GetCatalogs(_return, req);
    return;
  }

  void GetSchemas(TGetSchemasResp& _return, const TGetSchemasReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetSchemas(_return, req);
    }
    ifaces_[i]->GetSchemas(_return, req);
    return;
  }

  void GetTables(TGetTablesResp& _return, const TGetTablesReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetTables(_return, req);
    }
    ifaces_[i]->GetTables(_return, req);
    return;
  }

  void GetTableTypes(TGetTableTypesResp& _return, const TGetTableTypesReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetTableTypes(_return, req);
    }
    ifaces_[i]->GetTableTypes(_return, req);
    return;
  }

  void GetColumns(TGetColumnsResp& _return, const TGetColumnsReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetColumns(_return, req);
    }
    ifaces_[i]->GetColumns(_return, req);
    return;
  }

  void GetFunctions(TGetFunctionsResp& _return, const TGetFunctionsReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetFunctions(_return, req);
    }
    ifaces_[i]->GetFunctions(_return, req);
    return;
  }

  void GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetPrimaryKeys(_return, req);
    }
    ifaces_[i]->GetPrimaryKeys(_return, req);
    return;
  }

  void GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetCrossReference(_return, req);
    }
    ifaces_[i]->GetCrossReference(_return, req);
    return;
  }

  void GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetOperationStatus(_return, req);
    }
    ifaces_[i]->GetOperationStatus(_return, req);
    return;
  }

  void CancelOperation(TCancelOperationResp& _return, const TCancelOperationReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->CancelOperation(_return, req);
    }
    ifaces_[i]->CancelOperation(_return, req);
    return;
  }

  void CloseOperation(TCloseOperationResp& _return, const TCloseOperationReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->CloseOperation(_return, req);
    }
    ifaces_[i]->CloseOperation(_return, req);
    return;
  }

  void GetResultSetMetadata(TGetResultSetMetadataResp& _return, const TGetResultSetMetadataReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetResultSetMetadata(_return, req);
    }
    ifaces_[i]->GetResultSetMetadata(_return, req);
    return;
  }

  void FetchResults(TFetchResultsResp& _return, const TFetchResultsReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->FetchResults(_return, req);
    }
    ifaces_[i]->FetchResults(_return, req);
    return;
  }

  void GetDelegationToken(TGetDelegationTokenResp& _return, const TGetDelegationTokenReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetDelegationToken(_return, req);
    }
    ifaces_[i]->GetDelegationToken(_return, req);
    return;
  }

  void CancelDelegationToken(TCancelDelegationTokenResp& _return, const TCancelDelegationTokenReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->CancelDelegationToken(_return, req);
    }
    ifaces_[i]->CancelDelegationToken(_return, req);
    return;
  }

  void RenewDelegationToken(TRenewDelegationTokenResp& _return, const TRenewDelegationTokenReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->RenewDelegationToken(_return, req);
    }
    ifaces_[i]->RenewDelegationToken(_return, req);
    return;
  }

  void GetQueryId(TGetQueryIdResp& _return, const TGetQueryIdReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->GetQueryId(_return, req);
    }
    ifaces_[i]->GetQueryId(_return, req);
    return;
  }

  void SetClientInfo(TSetClientInfoResp& _return, const TSetClientInfoReq& req) override {
    size_t sz = ifaces_.size();
    size_t i = 0;
    for (; i < (sz - 1); ++i) {
      ifaces_[i]->SetClientInfo(_return, req);
    }
    ifaces_[i]->SetClientInfo(_return, req);
    return;
  }

};

// The 'concurrent' client is a thread safe client that correctly handles
// out of order responses.  It is slower than the regular client, so should
// only be used when you need to share a connection among multiple threads
class TCLIServiceConcurrentClient : virtual public TCLIServiceIf {
 public:
  TCLIServiceConcurrentClient(std::shared_ptr< ::apache::thrift::protocol::TProtocol> prot, std::shared_ptr<::apache::thrift::async::TConcurrentClientSyncInfo> sync) : sync_(sync)
{
    setProtocol(prot);
  }
  TCLIServiceConcurrentClient(std::shared_ptr< ::apache::thrift::protocol::TProtocol> iprot, std::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot, std::shared_ptr<::apache::thrift::async::TConcurrentClientSyncInfo> sync) : sync_(sync)
{
    setProtocol(iprot,oprot);
  }
 private:
  void setProtocol(std::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) {
  setProtocol(prot,prot);
  }
  void setProtocol(std::shared_ptr< ::apache::thrift::protocol::TProtocol> iprot, std::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
    piprot_=iprot;
    poprot_=oprot;
    iprot_ = iprot.get();
    oprot_ = oprot.get();
  }
 public:
  std::shared_ptr< ::apache::thrift::protocol::TProtocol> getInputProtocol() {
    return piprot_;
  }
  std::shared_ptr< ::apache::thrift::protocol::TProtocol> getOutputProtocol() {
    return poprot_;
  }
  void OpenSession(TOpenSessionResp& _return, const TOpenSessionReq& req) override;
  int32_t send_OpenSession(const TOpenSessionReq& req);
  void recv_OpenSession(TOpenSessionResp& _return, const int32_t seqid);
  void CloseSession(TCloseSessionResp& _return, const TCloseSessionReq& req) override;
  int32_t send_CloseSession(const TCloseSessionReq& req);
  void recv_CloseSession(TCloseSessionResp& _return, const int32_t seqid);
  void GetInfo(TGetInfoResp& _return, const TGetInfoReq& req) override;
  int32_t send_GetInfo(const TGetInfoReq& req);
  void recv_GetInfo(TGetInfoResp& _return, const int32_t seqid);
  void ExecuteStatement(TExecuteStatementResp& _return, const TExecuteStatementReq& req) override;
  int32_t send_ExecuteStatement(const TExecuteStatementReq& req);
  void recv_ExecuteStatement(TExecuteStatementResp& _return, const int32_t seqid);
  void GetTypeInfo(TGetTypeInfoResp& _return, const TGetTypeInfoReq& req) override;
  int32_t send_GetTypeInfo(const TGetTypeInfoReq& req);
  void recv_GetTypeInfo(TGetTypeInfoResp& _return, const int32_t seqid);
  void GetCatalogs(TGetCatalogsResp& _return, const TGetCatalogsReq& req) override;
  int32_t send_GetCatalogs(const TGetCatalogsReq& req);
  void recv_GetCatalogs(TGetCatalogsResp& _return, const int32_t seqid);
  void GetSchemas(TGetSchemasResp& _return, const TGetSchemasReq& req) override;
  int32_t send_GetSchemas(const TGetSchemasReq& req);
  void recv_GetSchemas(TGetSchemasResp& _return, const int32_t seqid);
  void GetTables(TGetTablesResp& _return, const TGetTablesReq& req) override;
  int32_t send_GetTables(const TGetTablesReq& req);
  void recv_GetTables(TGetTablesResp& _return, const int32_t seqid);
  void GetTableTypes(TGetTableTypesResp& _return, const TGetTableTypesReq& req) override;
  int32_t send_GetTableTypes(const TGetTableTypesReq& req);
  void recv_GetTableTypes(TGetTableTypesResp& _return, const int32_t seqid);
  void GetColumns(TGetColumnsResp& _return, const TGetColumnsReq& req) override;
  int32_t send_GetColumns(const TGetColumnsReq& req);
  void recv_GetColumns(TGetColumnsResp& _return, const int32_t seqid);
  void GetFunctions(TGetFunctionsResp& _return, const TGetFunctionsReq& req) override;
  int32_t send_GetFunctions(const TGetFunctionsReq& req);
  void recv_GetFunctions(TGetFunctionsResp& _return, const int32_t seqid);
  void GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req) override;
  int32_t send_GetPrimaryKeys(const TGetPrimaryKeysReq& req);
  void recv_GetPrimaryKeys(TGetPrimaryKeysResp& _return, const int32_t seqid);
  void GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req) override;
  int32_t send_GetCrossReference(const TGetCrossReferenceReq& req);
  void recv_GetCrossReference(TGetCrossReferenceResp& _return, const int32_t seqid);
  void GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req) override;
  int32_t send_GetOperationStatus(const TGetOperationStatusReq& req);
  void recv_GetOperationStatus(TGetOperationStatusResp& _return, const int32_t seqid);
  void CancelOperation(TCancelOperationResp& _return, const TCancelOperationReq& req) override;
  int32_t send_CancelOperation(const TCancelOperationReq& req);
  void recv_CancelOperation(TCancelOperationResp& _return, const int32_t seqid);
  void CloseOperation(TCloseOperationResp& _return, const TCloseOperationReq& req) override;
  int32_t send_CloseOperation(const TCloseOperationReq& req);
  void recv_CloseOperation(TCloseOperationResp& _return, const int32_t seqid);
  void GetResultSetMetadata(TGetResultSetMetadataResp& _return, const TGetResultSetMetadataReq& req) override;
  int32_t send_GetResultSetMetadata(const TGetResultSetMetadataReq& req);
  void recv_GetResultSetMetadata(TGetResultSetMetadataResp& _return, const int32_t seqid);
  void FetchResults(TFetchResultsResp& _return, const TFetchResultsReq& req) override;
  int32_t send_FetchResults(const TFetchResultsReq& req);
  void recv_FetchResults(TFetchResultsResp& _return, const int32_t seqid);
  void GetDelegationToken(TGetDelegationTokenResp& _return, const TGetDelegationTokenReq& req) override;
  int32_t send_GetDelegationToken(const TGetDelegationTokenReq& req);
  void recv_GetDelegationToken(TGetDelegationTokenResp& _return, const int32_t seqid);
  void CancelDelegationToken(TCancelDelegationTokenResp& _return, const TCancelDelegationTokenReq& req) override;
  int32_t send_CancelDelegationToken(const TCancelDelegationTokenReq& req);
  void recv_CancelDelegationToken(TCancelDelegationTokenResp& _return, const int32_t seqid);
  void RenewDelegationToken(TRenewDelegationTokenResp& _return, const TRenewDelegationTokenReq& req) override;
  int32_t send_RenewDelegationToken(const TRenewDelegationTokenReq& req);
  void recv_RenewDelegationToken(TRenewDelegationTokenResp& _return, const int32_t seqid);
  void GetQueryId(TGetQueryIdResp& _return, const TGetQueryIdReq& req) override;
  int32_t send_GetQueryId(const TGetQueryIdReq& req);
  void recv_GetQueryId(TGetQueryIdResp& _return, const int32_t seqid);
  void SetClientInfo(TSetClientInfoResp& _return, const TSetClientInfoReq& req) override;
  int32_t send_SetClientInfo(const TSetClientInfoReq& req);
  void recv_SetClientInfo(TSetClientInfoResp& _return, const int32_t seqid);
 protected:
  std::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
  std::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;
  ::apache::thrift::protocol::TProtocol* iprot_;
  ::apache::thrift::protocol::TProtocol* oprot_;
  std::shared_ptr<::apache::thrift::async::TConcurrentClientSyncInfo> sync_;
};

#ifdef _MSC_VER
  #pragma warning( pop )
#endif

}}}}} // namespace

#endif
