<?php
/**
 * Autogenerated by Thrift Compiler (0.16.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
use Thrift\Base\TBase;
use Thrift\Type\TType;
use Thrift\Type\TMessageType;
use Thrift\Exception\TException;
use Thrift\Exception\TProtocolException;
use Thrift\Protocol\TProtocol;
use Thrift\Protocol\TBinaryProtocolAccelerated;
use Thrift\Exception\TApplicationException;

interface TCLIServiceIf
{
    /**
     * @param \TOpenSessionReq $req
     * @return \TOpenSessionResp
     */
    public function OpenSession(\TOpenSessionReq $req);
    /**
     * @param \TCloseSessionReq $req
     * @return \TCloseSessionResp
     */
    public function CloseSession(\TCloseSessionReq $req);
    /**
     * @param \TGetInfoReq $req
     * @return \TGetInfoResp
     */
    public function GetInfo(\TGetInfoReq $req);
    /**
     * @param \TExecuteStatementReq $req
     * @return \TExecuteStatementResp
     */
    public function ExecuteStatement(\TExecuteStatementReq $req);
    /**
     * @param \TGetTypeInfoReq $req
     * @return \TGetTypeInfoResp
     */
    public function GetTypeInfo(\TGetTypeInfoReq $req);
    /**
     * @param \TGetCatalogsReq $req
     * @return \TGetCatalogsResp
     */
    public function GetCatalogs(\TGetCatalogsReq $req);
    /**
     * @param \TGetSchemasReq $req
     * @return \TGetSchemasResp
     */
    public function GetSchemas(\TGetSchemasReq $req);
    /**
     * @param \TGetTablesReq $req
     * @return \TGetTablesResp
     */
    public function GetTables(\TGetTablesReq $req);
    /**
     * @param \TGetTableTypesReq $req
     * @return \TGetTableTypesResp
     */
    public function GetTableTypes(\TGetTableTypesReq $req);
    /**
     * @param \TGetColumnsReq $req
     * @return \TGetColumnsResp
     */
    public function GetColumns(\TGetColumnsReq $req);
    /**
     * @param \TGetFunctionsReq $req
     * @return \TGetFunctionsResp
     */
    public function GetFunctions(\TGetFunctionsReq $req);
    /**
     * @param \TGetPrimaryKeysReq $req
     * @return \TGetPrimaryKeysResp
     */
    public function GetPrimaryKeys(\TGetPrimaryKeysReq $req);
    /**
     * @param \TGetCrossReferenceReq $req
     * @return \TGetCrossReferenceResp
     */
    public function GetCrossReference(\TGetCrossReferenceReq $req);
    /**
     * @param \TGetOperationStatusReq $req
     * @return \TGetOperationStatusResp
     */
    public function GetOperationStatus(\TGetOperationStatusReq $req);
    /**
     * @param \TCancelOperationReq $req
     * @return \TCancelOperationResp
     */
    public function CancelOperation(\TCancelOperationReq $req);
    /**
     * @param \TCloseOperationReq $req
     * @return \TCloseOperationResp
     */
    public function CloseOperation(\TCloseOperationReq $req);
    /**
     * @param \TGetResultSetMetadataReq $req
     * @return \TGetResultSetMetadataResp
     */
    public function GetResultSetMetadata(\TGetResultSetMetadataReq $req);
    /**
     * @param \TFetchResultsReq $req
     * @return \TFetchResultsResp
     */
    public function FetchResults(\TFetchResultsReq $req);
    /**
     * @param \TGetDelegationTokenReq $req
     * @return \TGetDelegationTokenResp
     */
    public function GetDelegationToken(\TGetDelegationTokenReq $req);
    /**
     * @param \TCancelDelegationTokenReq $req
     * @return \TCancelDelegationTokenResp
     */
    public function CancelDelegationToken(\TCancelDelegationTokenReq $req);
    /**
     * @param \TRenewDelegationTokenReq $req
     * @return \TRenewDelegationTokenResp
     */
    public function RenewDelegationToken(\TRenewDelegationTokenReq $req);
    /**
     * @param \TGetQueryIdReq $req
     * @return \TGetQueryIdResp
     */
    public function GetQueryId(\TGetQueryIdReq $req);
    /**
     * @param \TSetClientInfoReq $req
     * @return \TSetClientInfoResp
     */
    public function SetClientInfo(\TSetClientInfoReq $req);
    /**
     * @param \TUploadDataReq $req
     * @return \TUploadDataResp
     */
    public function UploadData(\TUploadDataReq $req);
    /**
     * @param \TDownloadDataReq $req
     * @return \TDownloadDataResp
     */
    public function DownloadData(\TDownloadDataReq $req);
}
