<!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.8.19"/>
<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.8.19 -->
<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');
/* @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-types">Public Types</a> &#124;
<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-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a599cb3ea46b08531eb37ad3586bc6fbd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a599cb3ea46b08531eb37ad3586bc6fbd">EncryptionPolicy</a> { <a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a599cb3ea46b08531eb37ad3586bc6fbdaee483fad5e8eddc9e32eafc1ce1f7b14">OPTIONAL</a>, 
<a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a599cb3ea46b08531eb37ad3586bc6fbda6edcb83b00da5c333232ccb935db919b">REQUIRED_REMOTE</a>, 
<a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a599cb3ea46b08531eb37ad3586bc6fbda0a0f8f2d17a5d532959579e9a4bb6011">REQUIRED</a>
 }</td></tr>
<tr class="memdesc:a599cb3ea46b08531eb37ad3586bc6fbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Policy for on-the-wire encryption.  <a href="classkudu_1_1client_1_1KuduClientBuilder.html#a599cb3ea46b08531eb37ad3586bc6fbd">More...</a><br /></td></tr>
<tr class="separator:a599cb3ea46b08531eb37ad3586bc6fbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a29c5cd50915a93bf77a071e34f46b535"><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#a29c5cd50915a93bf77a071e34f46b535">require_authentication</a> (bool require_authentication)</td></tr>
<tr class="separator:a29c5cd50915a93bf77a071e34f46b535"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a567003ba1a3a83d65862683164890926"><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#a567003ba1a3a83d65862683164890926">encryption_policy</a> (<a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a599cb3ea46b08531eb37ad3586bc6fbd">EncryptionPolicy</a> encryption_policy)</td></tr>
<tr class="separator:a567003ba1a3a83d65862683164890926"><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 Enumeration Documentation</h2>
<a id="a599cb3ea46b08531eb37ad3586bc6fbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a599cb3ea46b08531eb37ad3586bc6fbd">&#9670;&nbsp;</a></span>EncryptionPolicy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a599cb3ea46b08531eb37ad3586bc6fbd">kudu::client::KuduClientBuilder::EncryptionPolicy</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Policy for on-the-wire encryption. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a599cb3ea46b08531eb37ad3586bc6fbdaee483fad5e8eddc9e32eafc1ce1f7b14"></a>OPTIONAL&#160;</td><td class="fielddoc"><p>Optional, it uses encrypted connection if the server supports it, but it can connect to insecure servers too. </p>
</td></tr>
<tr><td class="fieldname"><a id="a599cb3ea46b08531eb37ad3586bc6fbda6edcb83b00da5c333232ccb935db919b"></a>REQUIRED_REMOTE&#160;</td><td class="fielddoc"><p>Only connects to remote servers that support encryption, fails otherwise. It can connect to insecure servers only locally. </p>
</td></tr>
<tr><td class="fieldname"><a id="a599cb3ea46b08531eb37ad3586bc6fbda0a0f8f2d17a5d532959579e9a4bb6011"></a>REQUIRED&#160;</td><td class="fielddoc"><p>Only connects to any server, including on the loopback interface, that support encryption, fails otherwise. </p>
</td></tr>
</table>

</div>
</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="a567003ba1a3a83d65862683164890926"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a567003ba1a3a83d65862683164890926">&#9670;&nbsp;</a></span>encryption_policy()</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::encryption_policy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a599cb3ea46b08531eb37ad3586bc6fbd">EncryptionPolicy</a>&#160;</td>
          <td class="paramname"><em>encryption_policy</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Require encryption for the connection to a remote server.</p>
<p>If it's set to REQUIRED_REMOTE or REQUIRED, the client will require encrypting the traffic between the server and the client. If the server doesn't support encryption, or if it's disabled, the client will fail to connect.</p>
<p>Loopback connections are encrypted only if 'encryption_policy' is set to REQUIRED, or if it's required by the server.</p>
<p>The default value is OPTIONAL, which allows connecting to servers without encryption as well, but it will still attempt to use it if the server supports it.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">encryption_policy</td><td>Which encryption policy to use. </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="a29c5cd50915a93bf77a071e34f46b535"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29c5cd50915a93bf77a071e34f46b535">&#9670;&nbsp;</a></span>require_authentication()</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::require_authentication </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>require_authentication</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Require authentication for the connection to a remote server.</p>
<p>If it's set to true, the client will require mutual authentication between the server and the client. If the server doesn't support authentication, or it's disabled, the client will fail to connect.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">require_authentication</td><td>Whether to require authentication. </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.16.0 on Tue Apr 12 2022 16:34:46 by Doxygen 1.8.19</small>
  <br>
  <small>Copyright © 2022 The Apache Software Foundation.</small>
</address>
</body>
</html>
