<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Kudu C++ client API: kudu::client::KuduClientBuilder Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Kudu C++ client API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>kudu</b></li><li class="navelem"><b>client</b></li><li class="navelem"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classkudu_1_1client_1_1KuduClientBuilder-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">kudu::client::KuduClientBuilder Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A "factory" for <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster.">KuduClient</a> objects.  
 <a href="classkudu_1_1client_1_1KuduClientBuilder.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="client_8h_source.html">client.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a08f4d2bf7053c6336e625ee2e6eeddd1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a08f4d2bf7053c6336e625ee2e6eeddd1">clear_master_server_addrs</a> ()</td></tr>
<tr class="separator:a08f4d2bf7053c6336e625ee2e6eeddd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c1b92afad7a6e21c5ea781fb7d42114"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a0c1b92afad7a6e21c5ea781fb7d42114">master_server_addrs</a> (const std::vector&lt; std::string &gt; &amp;addrs)</td></tr>
<tr class="separator:a0c1b92afad7a6e21c5ea781fb7d42114"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add149f1c1c2d3653e6a6cae4f44fa90c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#add149f1c1c2d3653e6a6cae4f44fa90c">add_master_server_addr</a> (const std::string &amp;addr)</td></tr>
<tr class="separator:add149f1c1c2d3653e6a6cae4f44fa90c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6114bb56e4d9d1231df0ef73c9aec752"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a6114bb56e4d9d1231df0ef73c9aec752">default_admin_operation_timeout</a> (const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;timeout)</td></tr>
<tr class="separator:a6114bb56e4d9d1231df0ef73c9aec752"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1813e8c8d24e92a0a710724000e2b3df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a1813e8c8d24e92a0a710724000e2b3df">default_rpc_timeout</a> (const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;timeout)</td></tr>
<tr class="separator:a1813e8c8d24e92a0a710724000e2b3df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2dcfb700c52d531f0da7146f331521f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#af2dcfb700c52d531f0da7146f331521f">connection_negotiation_timeout</a> (const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;timeout)</td></tr>
<tr class="separator:af2dcfb700c52d531f0da7146f331521f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c411bc4638cbf77e5d318f5049b0b7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a5c411bc4638cbf77e5d318f5049b0b7e">import_authentication_credentials</a> (std::string authn_creds)</td></tr>
<tr class="separator:a5c411bc4638cbf77e5d318f5049b0b7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66ba0fb68608ebc4a6c7e9148848cddb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a66ba0fb68608ebc4a6c7e9148848cddb">num_reactors</a> (int num_reactors)</td></tr>
<tr class="memdesc:a66ba0fb68608ebc4a6c7e9148848cddb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the number of reactors for the RPC messenger.  <a href="classkudu_1_1client_1_1KuduClientBuilder.html#a66ba0fb68608ebc4a6c7e9148848cddb">More...</a><br /></td></tr>
<tr class="separator:a66ba0fb68608ebc4a6c7e9148848cddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5b297f792b8e4142e913ceee2f5f3de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#ab5b297f792b8e4142e913ceee2f5f3de">sasl_protocol_name</a> (const std::string &amp;sasl_protocol_name)</td></tr>
<tr class="separator:ab5b297f792b8e4142e913ceee2f5f3de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1585dd6eff82519fe81088d1cfd35b77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a1585dd6eff82519fe81088d1cfd35b77">Build</a> (sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduClient.html">KuduClient</a> &gt; *client)</td></tr>
<tr class="separator:a1585dd6eff82519fe81088d1cfd35b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A "factory" for <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster.">KuduClient</a> objects. </p>
<p>This class is used to create instances of the <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster.">KuduClient</a> class with pre-set options/parameters. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="add149f1c1c2d3653e6a6cae4f44fa90c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add149f1c1c2d3653e6a6cae4f44fa90c">&#9670;&nbsp;</a></span>add_master_server_addr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a>&amp; kudu::client::KuduClientBuilder::add_master_server_addr </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>addr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Add an RPC address of a master to work with.</p>
<p>At least one master is required.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>RPC address of master server to add. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to the updated object. </dd></dl>

</div>
</div>
<a id="a1585dd6eff82519fe81088d1cfd35b77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1585dd6eff82519fe81088d1cfd35b77">&#9670;&nbsp;</a></span>Build()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduClientBuilder::Build </td>
          <td>(</td>
          <td class="paramtype">sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduClient.html">KuduClient</a> &gt; *&#160;</td>
          <td class="paramname"><em>client</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a client object.</p>
<dl class="section note"><dt>Note</dt><dd>KuduClients objects are shared amongst multiple threads and, as such, are stored in shared pointers.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">client</td><td>The newly created object wrapped in a shared pointer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status. The return value may indicate an error in the create operation, or a misuse of the builder; in the latter case, only the last error is returned. </dd></dl>

</div>
</div>
<a id="a08f4d2bf7053c6336e625ee2e6eeddd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08f4d2bf7053c6336e625ee2e6eeddd1">&#9670;&nbsp;</a></span>clear_master_server_addrs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a>&amp; kudu::client::KuduClientBuilder::clear_master_server_addrs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Clear the set of master addresses.</p>
<dl class="section return"><dt>Returns</dt><dd>Reference to the updated object. </dd></dl>

</div>
</div>
<a id="af2dcfb700c52d531f0da7146f331521f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2dcfb700c52d531f0da7146f331521f">&#9670;&nbsp;</a></span>connection_negotiation_timeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a>&amp; kudu::client::KuduClientBuilder::connection_negotiation_timeout </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set the timeout for negotiating a connection to a remote server.</p>
<p>If not provided, the underlying messenger is created with reasonable default. The result value could be retrieved using <code><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a68b569dd6749ec61805e3b0a691eacac">KuduClient.connection_negotiation_timeout()</a></code> after an instance of <code><a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster.">KuduClient</a></code> is created. Sometimes it makes sense to customize the timeout for connection negotiation, e.g. when running on a cluster with heavily loaded tablet servers. For details on the connection negotiation, see ../../../docs/design-docs/rpc.md::negotiation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Timeout value to set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to the updated object. </dd></dl>

</div>
</div>
<a id="a6114bb56e4d9d1231df0ef73c9aec752"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6114bb56e4d9d1231df0ef73c9aec752">&#9670;&nbsp;</a></span>default_admin_operation_timeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a>&amp; kudu::client::KuduClientBuilder::default_admin_operation_timeout </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set the default timeout for administrative operations.</p>
<p>Using this method it is possible to modify the default timeout for operations like CreateTable, AlterTable, etc. By default it is 30 seconds.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Timeout value to set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to the updated object. </dd></dl>

</div>
</div>
<a id="a1813e8c8d24e92a0a710724000e2b3df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1813e8c8d24e92a0a710724000e2b3df">&#9670;&nbsp;</a></span>default_rpc_timeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a>&amp; kudu::client::KuduClientBuilder::default_rpc_timeout </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set the default timeout for individual RPCs.</p>
<p>If not provided, defaults to 10 seconds.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Timeout value to set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to the updated object. </dd></dl>

</div>
</div>
<a id="a5c411bc4638cbf77e5d318f5049b0b7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c411bc4638cbf77e5d318f5049b0b7e">&#9670;&nbsp;</a></span>import_authentication_credentials()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a>&amp; kudu::client::KuduClientBuilder::import_authentication_credentials </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>authn_creds</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Import serialized authentication credentials from another client.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">authn_creds</td><td>The serialized authentication credentials, provided by a call to <code><a class="el" href="classkudu_1_1client_1_1KuduClient.html#ae932971967e58a8a7b85f6a56ee44cd0">KuduClient.ExportAuthenticationCredentials</a></code> in the C++ client or <code>KuduClient::exportAuthenticationCredentials</code> in the Java client. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to the updated object. </dd></dl>

</div>
</div>
<a id="a0c1b92afad7a6e21c5ea781fb7d42114"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c1b92afad7a6e21c5ea781fb7d42114">&#9670;&nbsp;</a></span>master_server_addrs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a>&amp; kudu::client::KuduClientBuilder::master_server_addrs </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
          <td class="paramname"><em>addrs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Add RPC addresses of multiple masters.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">addrs</td><td>RPC addresses of masters to add. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to the updated object. </dd></dl>

</div>
</div>
<a id="a66ba0fb68608ebc4a6c7e9148848cddb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66ba0fb68608ebc4a6c7e9148848cddb">&#9670;&nbsp;</a></span>num_reactors()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a>&amp; kudu::client::KuduClientBuilder::num_reactors </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num_reactors</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the number of reactors for the RPC messenger. </p>
<p>The reactor threads are used for sending and receiving. If not provided, the underlying messenger is created with the default number of reactor threads.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">num_reactors</td><td>Number of reactors to set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to the updated object. </dd></dl>

</div>
</div>
<a id="ab5b297f792b8e4142e913ceee2f5f3de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5b297f792b8e4142e913ceee2f5f3de">&#9670;&nbsp;</a></span>sasl_protocol_name()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a>&amp; kudu::client::KuduClientBuilder::sasl_protocol_name </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>sasl_protocol_name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set the SASL protocol name for the connection to a remote server.</p>
<p>If the servers use a non-default Kerberos service principal name (other than "kudu" or "kudu/&lt;hostname&gt;", this needs to be set for the client to be able to connect to the servers. If unset, the client will assume the server is using the default service principal.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sasl_protocol_name</td><td>SASL protocol name. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to the updated object. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/kudu/client/<a class="el" href="client_8h_source.html">client.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/>
<address class="footer">
  <small>Generated for Kudu version 1.15.0 on Mon Jun 21 2021 20:36:36 by Doxygen 1.9.1</small>
  <br>
  <small>Copyright © 2021 The Apache Software Foundation.</small>
</address>
</body>
</html>
