blob: c50297c68b94b3da7d30c8cf63a3aa618dbb2c90 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.6"/>
<title>Kudu C++ client API: kudu::client::KuduClient 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/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</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 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.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></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_1KuduClient.html">KuduClient</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="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classkudu_1_1client_1_1KuduClient-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">kudu::client::KuduClient Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A handle for a connection to a cluster.
<a href="classkudu_1_1client_1_1KuduClient.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="client_8h_source.html">client.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for kudu::client::KuduClient:</div>
<div class="dyncontent">
<div class="center">
<img src="classkudu_1_1client_1_1KuduClient.png" usemap="#kudu::client::KuduClient_map" alt=""/>
<map id="kudu::client::KuduClient_map" name="kudu::client::KuduClient_map">
</map>
</div></div>
<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:aef70c7f3a596ecda4040f9d46514b11a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11a">ReplicaSelection</a> { <a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aafb912836db348061379d0e0a9055e239">LEADER_ONLY</a>,
<a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aa801886067da41dacd0c9c2b8091f08d8">CLOSEST_REPLICA</a>,
<a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aaa060fb6126a3e3fa80079f885dc7d48f">FIRST_REPLICA</a>
}</td></tr>
<tr class="memdesc:aef70c7f3a596ecda4040f9d46514b11a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Policy with which to choose amongst multiple replicas. <a href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11a">More...</a><br/></td></tr>
<tr class="separator:aef70c7f3a596ecda4040f9d46514b11a"><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:a003f13604b4fb378f61e133a9b49d153"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduTableCreator.html">KuduTableCreator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a003f13604b4fb378f61e133a9b49d153">NewTableCreator</a> ()</td></tr>
<tr class="separator:a003f13604b4fb378f61e133a9b49d153"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0323b439d8658b2ac31fde7f46de63"><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_1KuduClient.html#a2f0323b439d8658b2ac31fde7f46de63">IsCreateTableInProgress</a> (const std::string &amp;table_name, bool *create_in_progress)</td></tr>
<tr class="separator:a2f0323b439d8658b2ac31fde7f46de63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d7cbad036bc74c71873a428abce5c1d"><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_1KuduClient.html#a9d7cbad036bc74c71873a428abce5c1d">DeleteTable</a> (const std::string &amp;table_name)</td></tr>
<tr class="separator:a9d7cbad036bc74c71873a428abce5c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a116bbcf13dc0991ad2a3129630075aea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduTableAlterer.html">KuduTableAlterer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a116bbcf13dc0991ad2a3129630075aea">NewTableAlterer</a> (const std::string &amp;table_name)</td></tr>
<tr class="separator:a116bbcf13dc0991ad2a3129630075aea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a331e528759296089837b4611c01809"><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_1KuduClient.html#a7a331e528759296089837b4611c01809">IsAlterTableInProgress</a> (const std::string &amp;table_name, bool *alter_in_progress)</td></tr>
<tr class="separator:a7a331e528759296089837b4611c01809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2aa649e05e0cfb0e10ebce98fb4d7a65"><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_1KuduClient.html#a2aa649e05e0cfb0e10ebce98fb4d7a65">GetTableSchema</a> (const std::string &amp;table_name, <a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> *schema)</td></tr>
<tr class="separator:a2aa649e05e0cfb0e10ebce98fb4d7a65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae283a49551a081524b41f5d8e51e68d9"><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_1KuduClient.html#ae283a49551a081524b41f5d8e51e68d9">ListTabletServers</a> (std::vector&lt; <a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html">KuduTabletServer</a> * &gt; *tablet_servers)</td></tr>
<tr class="separator:ae283a49551a081524b41f5d8e51e68d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ab09f69753b8c99ac7b2eeed03faa1d"><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_1KuduClient.html#a3ab09f69753b8c99ac7b2eeed03faa1d">ListTables</a> (std::vector&lt; std::string &gt; *tables, const std::string &amp;filter=&quot;&quot;)</td></tr>
<tr class="separator:a3ab09f69753b8c99ac7b2eeed03faa1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96e9a6c0a16a8825c291528ac27af818"><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_1KuduClient.html#a96e9a6c0a16a8825c291528ac27af818">TableExists</a> (const std::string &amp;table_name, bool *exists)</td></tr>
<tr class="separator:a96e9a6c0a16a8825c291528ac27af818"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa82a09718ffe68d3255195e736aec8d7"><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_1KuduClient.html#aa82a09718ffe68d3255195e736aec8d7">OpenTable</a> (const std::string &amp;table_name, sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduTable.html">KuduTable</a> &gt; *table)</td></tr>
<tr class="separator:aa82a09718ffe68d3255195e736aec8d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f5b9bf8767b44f03f4d3220dfd5f925"><td class="memItemLeft" align="right" valign="top">sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduSession.html">KuduSession</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a1f5b9bf8767b44f03f4d3220dfd5f925">NewSession</a> ()</td></tr>
<tr class="separator:a1f5b9bf8767b44f03f4d3220dfd5f925"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f52dff0717d6e96863aff068bfb3795"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a6f52dff0717d6e96863aff068bfb3795">IsMultiMaster</a> () const </td></tr>
<tr class="separator:a6f52dff0717d6e96863aff068bfb3795"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacfcd61c7cc1bf7817d1aa0bb738414f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aacfcd61c7cc1bf7817d1aa0bb738414f">default_admin_operation_timeout</a> () const </td></tr>
<tr class="separator:aacfcd61c7cc1bf7817d1aa0bb738414f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d0e8397e979e651a23eb240513a5556"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a2d0e8397e979e651a23eb240513a5556">default_rpc_timeout</a> () const </td></tr>
<tr class="separator:a2d0e8397e979e651a23eb240513a5556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a671b3540c74ef7c358bb98e95031e0"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a3a671b3540c74ef7c358bb98e95031e0">GetLatestObservedTimestamp</a> () const </td></tr>
<tr class="separator:a3a671b3540c74ef7c358bb98e95031e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0809b055eda76fd68988462f2a9791dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a0809b055eda76fd68988462f2a9791dd">SetLatestObservedTimestamp</a> (uint64_t ht_timestamp)</td></tr>
<tr class="separator:a0809b055eda76fd68988462f2a9791dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a196f1a18c000cdca309d05161caaddaa"><td class="memItemLeft" align="right" valign="top">static const uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a196f1a18c000cdca309d05161caaddaa">kNoTimestamp</a></td></tr>
<tr class="separator:a196f1a18c000cdca309d05161caaddaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ada57057f15990c8cc54770c782fa9ad4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada57057f15990c8cc54770c782fa9ad4"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>internal::Batcher</b></td></tr>
<tr class="separator:ada57057f15990c8cc54770c782fa9ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d6afdd81ae5d2f0207f7224a058132c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d6afdd81ae5d2f0207f7224a058132c"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>internal::GetTableSchemaRpc</b></td></tr>
<tr class="separator:a1d6afdd81ae5d2f0207f7224a058132c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78c0756675d700d01d123aea8ca18751"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78c0756675d700d01d123aea8ca18751"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>internal::LookupRpc</b></td></tr>
<tr class="separator:a78c0756675d700d01d123aea8ca18751"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb6757f44c88e6b23da105cca0299aee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb6757f44c88e6b23da105cca0299aee"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>internal::MetaCache</b></td></tr>
<tr class="separator:acb6757f44c88e6b23da105cca0299aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01410a9ff63da146890f75dcda841e99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01410a9ff63da146890f75dcda841e99"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>internal::RemoteTablet</b></td></tr>
<tr class="separator:a01410a9ff63da146890f75dcda841e99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cd42cd8503e7c94b878c96c42b2fd10"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2cd42cd8503e7c94b878c96c42b2fd10"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>internal::RemoteTabletServer</b></td></tr>
<tr class="separator:a2cd42cd8503e7c94b878c96c42b2fd10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8241e8597925b7121abc27b5024c9773"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8241e8597925b7121abc27b5024c9773"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>internal::WriteRpc</b></td></tr>
<tr class="separator:a8241e8597925b7121abc27b5024c9773"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba2affbf999dd265d3a7f8c30598fec7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba2affbf999dd265d3a7f8c30598fec7"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>ClientTest</b></td></tr>
<tr class="separator:aba2affbf999dd265d3a7f8c30598fec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad396ed74a6421797a2320caf02bec46c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad396ed74a6421797a2320caf02bec46c"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>KuduClientBuilder</b></td></tr>
<tr class="separator:ad396ed74a6421797a2320caf02bec46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79d30f3059c783e077627a6f6d153c1b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79d30f3059c783e077627a6f6d153c1b"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>KuduScanner</b></td></tr>
<tr class="separator:a79d30f3059c783e077627a6f6d153c1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a644ef5d9d668e5772acd6dc03c4f14ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a644ef5d9d668e5772acd6dc03c4f14ee"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>KuduScanTokenBuilder</b></td></tr>
<tr class="separator:a644ef5d9d668e5772acd6dc03c4f14ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae192dc54e7e8c25675182bacad0d0b6e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae192dc54e7e8c25675182bacad0d0b6e"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>KuduSession</b></td></tr>
<tr class="separator:ae192dc54e7e8c25675182bacad0d0b6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a770744f0111b5919212173a7efaf85cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a770744f0111b5919212173a7efaf85cd"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>KuduTable</b></td></tr>
<tr class="separator:a770744f0111b5919212173a7efaf85cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3460d221abb050e895feac294530a58f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3460d221abb050e895feac294530a58f"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>KuduTableAlterer</b></td></tr>
<tr class="separator:a3460d221abb050e895feac294530a58f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af500eb2379d14e4e6603db2c69faa783"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af500eb2379d14e4e6603db2c69faa783"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>KuduTableCreator</b></td></tr>
<tr class="separator:af500eb2379d14e4e6603db2c69faa783"><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 handle for a connection to a cluster. </p>
<p>The <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster. ">KuduClient</a> class represents a connection to a cluster. From the user perspective, they should only need to create one of these in their application, likely a singleton &ndash; but it is not a singleton in Kudu in any way. Different <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster. ">KuduClient</a> objects do not interact with each other &ndash; no connection pooling, etc. With the exception of common properties managed by free (non-member) functions in the kudu::client namespace, each <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster. ">KuduClient</a> object is sandboxed with no global cross-client state.</p>
<p>In the implementation, the client holds various pieces of common infrastructure which is not table-specific: </p>
<ul>
<li>RPC messenger: reactor threads and RPC connections are pooled here </li>
<li>Authentication: the client is initialized with some credentials, and all accesses through it share those credentials. </li>
<li>Caches: caches of table schemas, tablet locations, tablet server IP addresses, etc are shared per-client.</li>
</ul>
<p>In order to actually write data to the cluster, callers must first create a <a class="el" href="classkudu_1_1client_1_1KuduSession.html" title="Representation of a Kudu client session. ">KuduSession</a> object using <a class="el" href="classkudu_1_1client_1_1KuduClient.html#a1f5b9bf8767b44f03f4d3220dfd5f925">NewSession()</a>. A <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster. ">KuduClient</a> may have several associated sessions.</p>
<dl class="section note"><dt>Note</dt><dd>This class is thread-safe.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>Cluster administration functions are likely to be in this class as well. </dd></dl>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="aef70c7f3a596ecda4040f9d46514b11a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11a">kudu::client::KuduClient::ReplicaSelection</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Policy with which to choose amongst multiple replicas. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="aef70c7f3a596ecda4040f9d46514b11aafb912836db348061379d0e0a9055e239"></a>LEADER_ONLY</em>&#160;</td><td class="fielddoc">
<p>Select the LEADER replica. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="aef70c7f3a596ecda4040f9d46514b11aa801886067da41dacd0c9c2b8091f08d8"></a>CLOSEST_REPLICA</em>&#160;</td><td class="fielddoc">
<p>Select the closest replica to the client, or a random one if all replicas are equidistant. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="aef70c7f3a596ecda4040f9d46514b11aaa060fb6126a3e3fa80079f885dc7d48f"></a>FIRST_REPLICA</em>&#160;</td><td class="fielddoc">
<p>Select the first replica in the list. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aacfcd61c7cc1bf7817d1aa0bb738414f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a>&amp; kudu::client::KuduClient::default_admin_operation_timeout </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Default timeout for admin operations. </dd></dl>
</div>
</div>
<a class="anchor" id="a2d0e8397e979e651a23eb240513a5556"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a>&amp; kudu::client::KuduClient::default_rpc_timeout </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Default timeout for RPCs. </dd></dl>
</div>
</div>
<a class="anchor" id="a9d7cbad036bc74c71873a428abce5c1d"></a>
<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::KuduClient::DeleteTable </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>table_name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Delete/drop a table.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">table_name</td><td>Name of the table to drop. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status. </dd></dl>
</div>
</div>
<a class="anchor" id="a3a671b3540c74ef7c358bb98e95031e0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t kudu::client::KuduClient::GetLatestObservedTimestamp </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the highest HybridTime timestamp observed by the client.</p>
<p>The latest observed timestamp can be used to start a snapshot scan on a table which is guaranteed to contain all data written or previously read by this client. See <a class="el" href="classkudu_1_1client_1_1KuduScanner.html" title="This class is a representation of a single scan. ">KuduScanner</a> for more details on timestamps.</p>
<dl class="section return"><dt>Returns</dt><dd>Highest HybridTime timestamp observed by the client. </dd></dl>
</div>
</div>
<a class="anchor" id="a2aa649e05e0cfb0e10ebce98fb4d7a65"></a>
<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::KuduClient::GetTableSchema </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>table_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> *&#160;</td>
<td class="paramname"><em>schema</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get table's schema.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">table_name</td><td>Name of the table. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">schema</td><td>Raw pointer to the schema object; caller gets ownership. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status. </dd></dl>
</div>
</div>
<a class="anchor" id="a7a331e528759296089837b4611c01809"></a>
<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::KuduClient::IsAlterTableInProgress </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>table_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool *&#160;</td>
<td class="paramname"><em>alter_in_progress</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if table alteration is in-progress.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">table_name</td><td>Name of the table. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">alter_in_progress</td><td>The value is set only in case of success; it is <code>true</code> iff the operation is in progress. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status. </dd></dl>
</div>
</div>
<a class="anchor" id="a2f0323b439d8658b2ac31fde7f46de63"></a>
<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::KuduClient::IsCreateTableInProgress </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>table_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool *&#160;</td>
<td class="paramname"><em>create_in_progress</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check whether a create table operation is in-progress.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">table_name</td><td>Name of the table. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">create_in_progress</td><td>The value is set only in case of success; it is <code>true</code> iff the operation is in progress. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status. </dd></dl>
</div>
</div>
<a class="anchor" id="a6f52dff0717d6e96863aff068bfb3795"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool kudu::client::KuduClient::IsMultiMaster </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><code>true</code> iff client is configured to talk to multiple Kudu master servers. </dd></dl>
</div>
</div>
<a class="anchor" id="a3ab09f69753b8c99ac7b2eeed03faa1d"></a>
<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::KuduClient::ListTables </td>
<td>(</td>
<td class="paramtype">std::vector&lt; std::string &gt; *&#160;</td>
<td class="paramname"><em>tables</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>filter</em> = <code>&quot;&quot;</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>List only those tables whose names pass a substring match on <code>filter</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">tables</td><td>The placeholder for the result. Appended only on success. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filter</td><td>Substring filter to use; empty sub-string filter matches all tables. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classkudu_1_1Status.html" title="A representation of an operation&#39;s outcome. ">Status</a> object for the operation. </dd></dl>
</div>
</div>
<a class="anchor" id="ae283a49551a081524b41f5d8e51e68d9"></a>
<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::KuduClient::ListTabletServers </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html">KuduTabletServer</a> * &gt; *&#160;</td>
<td class="paramname"><em>tablet_servers</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get information on current tablet servers.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">tablet_servers</td><td>The placeholder for the result. The caller takes ownership of the container's elements. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status. </dd></dl>
</div>
</div>
<a class="anchor" id="a1f5b9bf8767b44f03f4d3220dfd5f925"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">sp::shared_ptr&lt;<a class="el" href="classkudu_1_1client_1_1KuduSession.html">KuduSession</a>&gt; kudu::client::KuduClient::NewSession </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a new session for interacting with the cluster.</p>
<p>This is a fully local operation (no RPCs or blocking).</p>
<dl class="section return"><dt>Returns</dt><dd>A new session object; caller is responsible for destroying it. </dd></dl>
</div>
</div>
<a class="anchor" id="a116bbcf13dc0991ad2a3129630075aea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduTableAlterer.html">KuduTableAlterer</a>* kudu::client::KuduClient::NewTableAlterer </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>table_name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a <a class="el" href="classkudu_1_1client_1_1KuduTableAlterer.html" title="Alters an existing table based on the provided steps. ">KuduTableAlterer</a> object.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">table_name</td><td>Name of the table to alter. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to newly created object: it is the caller's responsibility to free it. </dd></dl>
</div>
</div>
<a class="anchor" id="a003f13604b4fb378f61e133a9b49d153"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduTableCreator.html">KuduTableCreator</a>* kudu::client::KuduClient::NewTableCreator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a <a class="el" href="classkudu_1_1client_1_1KuduTableCreator.html" title="A helper class to create a new table with the desired options. ">KuduTableCreator</a> object.</p>
<dl class="section return"><dt>Returns</dt><dd>Pointer to newly created object; it is the caller's responsibility to free it. </dd></dl>
</div>
</div>
<a class="anchor" id="aa82a09718ffe68d3255195e736aec8d7"></a>
<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::KuduClient::OpenTable </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>table_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduTable.html">KuduTable</a> &gt; *&#160;</td>
<td class="paramname"><em>table</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Open table with the given name.</p>
<p>This method does an RPC to ensure that the table exists and looks up its schema.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">table_name</td><td>Name of the table. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">table</td><td>The result table. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd><p class="startdd">Should we offer an async version of this as well? </p>
<p class="enddd">Probably should have a configurable timeout in <a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html" title="A &quot;factory&quot; for KuduClient objects. ">KuduClientBuilder</a>? </p>
</dd></dl>
</div>
</div>
<a class="anchor" id="a0809b055eda76fd68988462f2a9791dd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void kudu::client::KuduClient::SetLatestObservedTimestamp </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>ht_timestamp</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the latest observed HybridTime timestamp.</p>
<p>This is only useful when forwarding timestamps between clients to enforce external consistency when using <a class="el" href="classkudu_1_1client_1_1KuduSession.html#aabd55109ba3b086bbe33b277cdd40d22ae978fab7451faebf4399830b603c855c">KuduSession::CLIENT_PROPAGATED</a> external consistency mode.</p>
<p>The HybridTime encoded timestamp should be obtained from another client's <a class="el" href="classkudu_1_1client_1_1KuduClient.html#a3a671b3540c74ef7c358bb98e95031e0">KuduClient::GetLatestObservedTimestamp()</a> method.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ht_timestamp</td><td>Timestamp encoded in HybridTime format. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a96e9a6c0a16a8825c291528ac27af818"></a>
<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::KuduClient::TableExists </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>table_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool *&#160;</td>
<td class="paramname"><em>exists</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if the table given by 'table_name' exists.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">table_name</td><td>Name of the table. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">exists</td><td>Set only on success; set to <code>true</code> iff table exists. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classkudu_1_1Status.html" title="A representation of an operation&#39;s outcome. ">Status</a> object for the operation. </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a196f1a18c000cdca309d05161caaddaa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const uint64_t kudu::client::KuduClient::kNoTimestamp</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Value for the latest observed timestamp when none has been observed or set. </p>
</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.0.0 on Mon Sep 19 2016 19:01:02 by Doxygen 1.8.6</small>
<br>
<small>Copyright © 2016 The Apache Software Foundation.</small>
</address>
</body>
</html>