| <!-- This comment will put IE 6, 7 and 8 in quirks mode --> |
| <!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"/> |
| <title>Kudu C++ client API: kudu::client::KuduClient Class Reference</title> |
| <link href="tabs.css" rel="stylesheet" type="text/css"/> |
| <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javaScript" src="search/search.js"></script> |
| <link href="doxygen.css" rel="stylesheet" type="text/css"/> |
| </head> |
| <body onload='searchBox.OnSelectItem(0);'> |
| <!-- Generated by Doxygen 1.6.1 --> |
| <script type="text/javascript"><!-- |
| var searchBox = new SearchBox("searchBox", "search",false,'Search'); |
| --></script> |
| <div class="navigation" id="top"> |
| <div class="tabs"> |
| <ul> |
| <li><a href="index.html"><span>Main Page</span></a></li> |
| <li><a href="pages.html"><span>Related 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"> |
| <img id="MSearchSelect" src="search/search.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)"/> |
| <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> |
| </div> |
| </li> |
| </ul> |
| </div> |
| <div class="tabs"> |
| <ul> |
| <li><a href="annotated.html"><span>Class List</span></a></li> |
| <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> |
| <li><a href="functions.html"><span>Class Members</span></a></li> |
| </ul> |
| </div> |
| <div class="navpath"><b>kudu</b>::<b>client</b>::<a class="el" href="classkudu_1_1client_1_1KuduClient.html">KuduClient</a> |
| </div> |
| </div> |
| <div class="contents"> |
| <h1>kudu::client::KuduClient Class Reference</h1><!-- doxytag: class="kudu::client::KuduClient" --><!-- doxytag: inherits="std::tr1::enable_shared_from_this" --> |
| <p>A handle for a connection to a cluster. |
| <a href="#_details">More...</a></p> |
| |
| <p><code>#include <<a class="el" href="client_8h_source.html">client.h</a>></code></p> |
| |
| <p>Inherits std::tr1::enable_shared_from_this< KuduClient >.</p> |
| |
| <p><a href="classkudu_1_1client_1_1KuduClient-members.html">List of all members.</a></p> |
| <table border="0" cellpadding="0" cellspacing="0"> |
| <tr><td colspan="2"><h2>Public Types</h2></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">enum </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><td colspan="2"><h2>Public Member Functions</h2></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduTableCreator.html">KuduTableCreator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a003f13604b4fb378f61e133a9b49d153">NewTableCreator</a> ()</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a2f0323b439d8658b2ac31fde7f46de63">IsCreateTableInProgress</a> (const std::string &table_name, bool *create_in_progress)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a9d7cbad036bc74c71873a428abce5c1d">DeleteTable</a> (const std::string &table_name)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduTableAlterer.html">KuduTableAlterer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a116bbcf13dc0991ad2a3129630075aea">NewTableAlterer</a> (const std::string &table_name)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a7a331e528759296089837b4611c01809">IsAlterTableInProgress</a> (const std::string &table_name, bool *alter_in_progress)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a2aa649e05e0cfb0e10ebce98fb4d7a65">GetTableSchema</a> (const std::string &table_name, <a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> *schema)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#ae283a49551a081524b41f5d8e51e68d9">ListTabletServers</a> (std::vector< <a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html">KuduTabletServer</a> * > *tablet_servers)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a3ab09f69753b8c99ac7b2eeed03faa1d">ListTables</a> (std::vector< std::string > *tables, const std::string &filter="")</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a96e9a6c0a16a8825c291528ac27af818">TableExists</a> (const std::string &table_name, bool *exists)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aa82a09718ffe68d3255195e736aec8d7">OpenTable</a> (const std::string &table_name, sp::shared_ptr< <a class="el" href="classkudu_1_1client_1_1KuduTable.html">KuduTable</a> > *table)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">sp::shared_ptr< <a class="el" href="classkudu_1_1client_1_1KuduSession.html">KuduSession</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a1f5b9bf8767b44f03f4d3220dfd5f925">NewSession</a> ()</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a6f52dff0717d6e96863aff068bfb3795">IsMultiMaster</a> () const </td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> & </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><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> & </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><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a3a671b3540c74ef7c358bb98e95031e0">GetLatestObservedTimestamp</a> () const </td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">void </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><td colspan="2"><h2>Static Public Attributes</h2></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">static const uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a196f1a18c000cdca309d05161caaddaa">kNoTimestamp</a></td></tr> |
| <tr><td colspan="2"><h2>Friends</h2></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada57057f15990c8cc54770c782fa9ad4"></a><!-- doxytag: member="kudu::client::KuduClient::internal::Batcher" ref="ada57057f15990c8cc54770c782fa9ad4" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>internal::Batcher</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d6afdd81ae5d2f0207f7224a058132c"></a><!-- doxytag: member="kudu::client::KuduClient::internal::GetTableSchemaRpc" ref="a1d6afdd81ae5d2f0207f7224a058132c" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>internal::GetTableSchemaRpc</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78c0756675d700d01d123aea8ca18751"></a><!-- doxytag: member="kudu::client::KuduClient::internal::LookupRpc" ref="a78c0756675d700d01d123aea8ca18751" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>internal::LookupRpc</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb6757f44c88e6b23da105cca0299aee"></a><!-- doxytag: member="kudu::client::KuduClient::internal::MetaCache" ref="acb6757f44c88e6b23da105cca0299aee" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>internal::MetaCache</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01410a9ff63da146890f75dcda841e99"></a><!-- doxytag: member="kudu::client::KuduClient::internal::RemoteTablet" ref="a01410a9ff63da146890f75dcda841e99" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>internal::RemoteTablet</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2cd42cd8503e7c94b878c96c42b2fd10"></a><!-- doxytag: member="kudu::client::KuduClient::internal::RemoteTabletServer" ref="a2cd42cd8503e7c94b878c96c42b2fd10" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>internal::RemoteTabletServer</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8241e8597925b7121abc27b5024c9773"></a><!-- doxytag: member="kudu::client::KuduClient::internal::WriteRpc" ref="a8241e8597925b7121abc27b5024c9773" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>internal::WriteRpc</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba2affbf999dd265d3a7f8c30598fec7"></a><!-- doxytag: member="kudu::client::KuduClient::ClientTest" ref="aba2affbf999dd265d3a7f8c30598fec7" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>ClientTest</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad396ed74a6421797a2320caf02bec46c"></a><!-- doxytag: member="kudu::client::KuduClient::KuduClientBuilder" ref="ad396ed74a6421797a2320caf02bec46c" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>KuduClientBuilder</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79d30f3059c783e077627a6f6d153c1b"></a><!-- doxytag: member="kudu::client::KuduClient::KuduScanner" ref="a79d30f3059c783e077627a6f6d153c1b" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>KuduScanner</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a644ef5d9d668e5772acd6dc03c4f14ee"></a><!-- doxytag: member="kudu::client::KuduClient::KuduScanTokenBuilder" ref="a644ef5d9d668e5772acd6dc03c4f14ee" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>KuduScanTokenBuilder</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae192dc54e7e8c25675182bacad0d0b6e"></a><!-- doxytag: member="kudu::client::KuduClient::KuduSession" ref="ae192dc54e7e8c25675182bacad0d0b6e" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>KuduSession</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a770744f0111b5919212173a7efaf85cd"></a><!-- doxytag: member="kudu::client::KuduClient::KuduTable" ref="a770744f0111b5919212173a7efaf85cd" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>KuduTable</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3460d221abb050e895feac294530a58f"></a><!-- doxytag: member="kudu::client::KuduClient::KuduTableAlterer" ref="a3460d221abb050e895feac294530a58f" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>KuduTableAlterer</b></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af500eb2379d14e4e6603db2c69faa783"></a><!-- doxytag: member="kudu::client::KuduClient::KuduTableCreator" ref="af500eb2379d14e4e6603db2c69faa783" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>KuduTableCreator</b></td></tr> |
| </table> |
| <hr/><a name="_details"></a><h2>Detailed Description</h2> |
| <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 -- 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 -- 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="note"><dt><b>Note:</b></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> |
| <hr/><h2>Member Enumeration Documentation</h2> |
| <a class="anchor" id="aef70c7f3a596ecda4040f9d46514b11a"></a><!-- doxytag: member="kudu::client::KuduClient::ReplicaSelection" ref="aef70c7f3a596ecda4040f9d46514b11a" args="" --> |
| <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> |
| <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><em><a class="anchor" id="aef70c7f3a596ecda4040f9d46514b11aafb912836db348061379d0e0a9055e239"></a><!-- doxytag: member="LEADER_ONLY" ref="aef70c7f3a596ecda4040f9d46514b11aafb912836db348061379d0e0a9055e239" args="" -->LEADER_ONLY</em> </td><td> |
| <p>Select the LEADER replica. </p> |
| </td></tr> |
| <tr><td valign="top"><em><a class="anchor" id="aef70c7f3a596ecda4040f9d46514b11aa801886067da41dacd0c9c2b8091f08d8"></a><!-- doxytag: member="CLOSEST_REPLICA" ref="aef70c7f3a596ecda4040f9d46514b11aa801886067da41dacd0c9c2b8091f08d8" args="" -->CLOSEST_REPLICA</em> </td><td> |
| <p>Select the closest replica to the client, or a random one if all replicas are equidistant. </p> |
| </td></tr> |
| <tr><td valign="top"><em><a class="anchor" id="aef70c7f3a596ecda4040f9d46514b11aaa060fb6126a3e3fa80079f885dc7d48f"></a><!-- doxytag: member="FIRST_REPLICA" ref="aef70c7f3a596ecda4040f9d46514b11aaa060fb6126a3e3fa80079f885dc7d48f" args="" -->FIRST_REPLICA</em> </td><td> |
| <p>Select the first replica in the list. </p> |
| </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <hr/><h2>Member Function Documentation</h2> |
| <a class="anchor" id="aacfcd61c7cc1bf7817d1aa0bb738414f"></a><!-- doxytag: member="kudu::client::KuduClient::default_admin_operation_timeout" ref="aacfcd61c7cc1bf7817d1aa0bb738414f" args="() const " --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a>& 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="return"><dt><b>Returns:</b></dt><dd>Default timeout for admin operations. </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2d0e8397e979e651a23eb240513a5556"></a><!-- doxytag: member="kudu::client::KuduClient::default_rpc_timeout" ref="a2d0e8397e979e651a23eb240513a5556" args="() const " --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a>& 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="return"><dt><b>Returns:</b></dt><dd>Default timeout for RPCs. </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a9d7cbad036bc74c71873a428abce5c1d"></a><!-- doxytag: member="kudu::client::KuduClient::DeleteTable" ref="a9d7cbad036bc74c71873a428abce5c1d" args="(const std::string &table_name)" --> |
| <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 & </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><dt><b>Parameters:</b></dt><dd> |
| <table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>table_name</em> </td><td>Name of the table to drop. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="return"><dt><b>Returns:</b></dt><dd>Operation status. </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a3a671b3540c74ef7c358bb98e95031e0"></a><!-- doxytag: member="kudu::client::KuduClient::GetLatestObservedTimestamp" ref="a3a671b3540c74ef7c358bb98e95031e0" args="() const " --> |
| <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> |
| <p>How to get Read-Your-Writes consistency: the code snippet below uses <a class="el" href="classkudu_1_1client_1_1KuduClient.html#a3a671b3540c74ef7c358bb98e95031e0">KuduClient::GetLatestObservedTimestamp()</a> along with <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#ab13dbb301197b411dec4cd6870801bae">KuduScanner::SetSnapshotRaw()</a> to perform READ_AT_SNAPSHOT scan containing the data which has just been written. Notice extra 1 added to the timestamp passed to <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#ab13dbb301197b411dec4cd6870801bae">KuduScanner::SetSnapshotRaw()</a>: </p> |
| <div class="fragment"><pre class="fragment"> shared_ptr<KuduClient> client; |
| ... <span class="comment">// open/initialize the client</span> |
| shared_ptr<KuduSession> session(client->NewSession()); |
| ... <span class="comment">// set Kudu session properties</span> |
| shared_ptr<KuduTable> table; |
| ... <span class="comment">// open the table</span> |
| unique_ptr<KuduInsert> insert_op(table->NewInsert()); |
| ... <span class="comment">// populate new insert operation with data</span> |
| RETURN_NOT_OK(session->Apply(insert_op.release())); |
| RETURN_NOT_OK(session->Flush()); |
| uint64_t snapshot_timestamp = client->GetLatestObservedTimestamp() + 1; |
| KuduScanner scanner(table.get()); |
| RETURN_NOT_OK(scanner.SetSnapshotRaw(snapshot_timestamp)); |
| RETURN_NOT_OK(scanner.SetSelection(<a class="code" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aafb912836db348061379d0e0a9055e239" title="Select the LEADER replica.">KuduClient::LEADER_ONLY</a>)); |
| RETURN_NOT_OK(scanner.SetReadMode(<a class="code" href="classkudu_1_1client_1_1KuduScanner.html#a36fdb59d6488618363331269d3f58348a380798cc81589d865b7b2549e186b2e2">KuduScanner::READ_AT_SNAPSHOT</a>)); |
| RETURN_NOT_OK(scanner.Open()); |
| ... <span class="comment">// retrieve scanned rows</span> |
| </pre></div><p> There are currently races in which, in rare occasions, Read-Your-Writes consistency might not hold even in this case. These are being taken care of as part of <a href="https://issues.apache.org/jira/browse/KUDU-430">KUDU-430</a></p> |
| <dl class="note"><dt><b>Note:</b></dt><dd>This method is experimental and will either disappear or change in a future release.</dd></dl> |
| <dl class="return"><dt><b>Returns:</b></dt><dd>Highest HybridTime timestamp observed by the client. </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2aa649e05e0cfb0e10ebce98fb4d7a65"></a><!-- doxytag: member="kudu::client::KuduClient::GetTableSchema" ref="a2aa649e05e0cfb0e10ebce98fb4d7a65" args="(const std::string &table_name, KuduSchema *schema)" --> |
| <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 & </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> * </td> |
| <td class="paramname"> <em>schema</em></td><td> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td><td></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| <p>Get table's schema.</p> |
| <dl><dt><b>Parameters:</b></dt><dd> |
| <table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>table_name</em> </td><td>Name of the table. </td></tr> |
| <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>schema</em> </td><td>Raw pointer to the schema object; caller gets ownership. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="return"><dt><b>Returns:</b></dt><dd>Operation status. </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a7a331e528759296089837b4611c01809"></a><!-- doxytag: member="kudu::client::KuduClient::IsAlterTableInProgress" ref="a7a331e528759296089837b4611c01809" args="(const std::string &table_name, bool *alter_in_progress)" --> |
| <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 & </td> |
| <td class="paramname"> <em>table_name</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">bool * </td> |
| <td class="paramname"> <em>alter_in_progress</em></td><td> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td><td></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| <p>Check if table alteration is in-progress.</p> |
| <dl><dt><b>Parameters:</b></dt><dd> |
| <table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>table_name</em> </td><td>Name of the table. </td></tr> |
| <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>alter_in_progress</em> </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="return"><dt><b>Returns:</b></dt><dd>Operation status. </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2f0323b439d8658b2ac31fde7f46de63"></a><!-- doxytag: member="kudu::client::KuduClient::IsCreateTableInProgress" ref="a2f0323b439d8658b2ac31fde7f46de63" args="(const std::string &table_name, bool *create_in_progress)" --> |
| <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 & </td> |
| <td class="paramname"> <em>table_name</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">bool * </td> |
| <td class="paramname"> <em>create_in_progress</em></td><td> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <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><dt><b>Parameters:</b></dt><dd> |
| <table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>table_name</em> </td><td>Name of the table. </td></tr> |
| <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>create_in_progress</em> </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="return"><dt><b>Returns:</b></dt><dd>Operation status. </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a6f52dff0717d6e96863aff068bfb3795"></a><!-- doxytag: member="kudu::client::KuduClient::IsMultiMaster" ref="a6f52dff0717d6e96863aff068bfb3795" args="() const " --> |
| <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="return"><dt><b>Returns:</b></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><!-- doxytag: member="kudu::client::KuduClient::ListTables" ref="a3ab09f69753b8c99ac7b2eeed03faa1d" args="(std::vector< std::string > *tables, const std::string &filter="")" --> |
| <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< std::string > * </td> |
| <td class="paramname"> <em>tables</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const std::string & </td> |
| <td class="paramname"> <em>filter</em> = <code>""</code></td><td> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <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><dt><b>Parameters:</b></dt><dd> |
| <table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>tables</em> </td><td>The placeholder for the result. Appended only on success. </td></tr> |
| <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>filter</em> </td><td>Substring filter to use; empty sub-string filter matches all tables. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="classkudu_1_1Status.html" title="A representation of an operation's outcome.">Status</a> object for the operation. </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ae283a49551a081524b41f5d8e51e68d9"></a><!-- doxytag: member="kudu::client::KuduClient::ListTabletServers" ref="ae283a49551a081524b41f5d8e51e68d9" args="(std::vector< KuduTabletServer * > *tablet_servers)" --> |
| <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< <a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html">KuduTabletServer</a> * > * </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><dt><b>Parameters:</b></dt><dd> |
| <table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>tablet_servers</em> </td><td>The placeholder for the result. The caller takes ownership of the container's elements. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="return"><dt><b>Returns:</b></dt><dd>Operation status. </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a1f5b9bf8767b44f03f4d3220dfd5f925"></a><!-- doxytag: member="kudu::client::KuduClient::NewSession" ref="a1f5b9bf8767b44f03f4d3220dfd5f925" args="()" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">sp::shared_ptr<<a class="el" href="classkudu_1_1client_1_1KuduSession.html">KuduSession</a>> 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="return"><dt><b>Returns:</b></dt><dd>A new session object; caller is responsible for destroying it. </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a116bbcf13dc0991ad2a3129630075aea"></a><!-- doxytag: member="kudu::client::KuduClient::NewTableAlterer" ref="a116bbcf13dc0991ad2a3129630075aea" args="(const std::string &table_name)" --> |
| <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 & </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><dt><b>Parameters:</b></dt><dd> |
| <table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>table_name</em> </td><td>Name of the table to alter. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="return"><dt><b>Returns:</b></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><!-- doxytag: member="kudu::client::KuduClient::NewTableCreator" ref="a003f13604b4fb378f61e133a9b49d153" args="()" --> |
| <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="return"><dt><b>Returns:</b></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><!-- doxytag: member="kudu::client::KuduClient::OpenTable" ref="aa82a09718ffe68d3255195e736aec8d7" args="(const std::string &table_name, sp::shared_ptr< KuduTable > *table)" --> |
| <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 & </td> |
| <td class="paramname"> <em>table_name</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">sp::shared_ptr< <a class="el" href="classkudu_1_1client_1_1KuduTable.html">KuduTable</a> > * </td> |
| <td class="paramname"> <em>table</em></td><td> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <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><dt><b>Parameters:</b></dt><dd> |
| <table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>table_name</em> </td><td>Name of the table. </td></tr> |
| <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>table</em> </td><td>The result table. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="return"><dt><b>Returns:</b></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 "factory" for KuduClient objects.">KuduClientBuilder</a>? </p> |
| </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a0809b055eda76fd68988462f2a9791dd"></a><!-- doxytag: member="kudu::client::KuduClient::SetLatestObservedTimestamp" ref="a0809b055eda76fd68988462f2a9791dd" args="(uint64_t ht_timestamp)" --> |
| <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 </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="note"><dt><b>Note:</b></dt><dd>This method is experimental and will either disappear or change in a future release.</dd></dl> |
| <dl><dt><b>Parameters:</b></dt><dd> |
| <table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>ht_timestamp</em> </td><td>Timestamp encoded in HybridTime format. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a96e9a6c0a16a8825c291528ac27af818"></a><!-- doxytag: member="kudu::client::KuduClient::TableExists" ref="a96e9a6c0a16a8825c291528ac27af818" args="(const std::string &table_name, bool *exists)" --> |
| <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 & </td> |
| <td class="paramname"> <em>table_name</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">bool * </td> |
| <td class="paramname"> <em>exists</em></td><td> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <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><dt><b>Parameters:</b></dt><dd> |
| <table border="0" cellspacing="2" cellpadding="0"> |
| <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>table_name</em> </td><td>Name of the table. </td></tr> |
| <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>exists</em> </td><td>Set only on success; set to <code>true</code> iff table exists. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="classkudu_1_1Status.html" title="A representation of an operation's outcome.">Status</a> object for the operation. </dd></dl> |
| |
| </div> |
| </div> |
| <hr/><h2>Member Data Documentation</h2> |
| <a class="anchor" id="a196f1a18c000cdca309d05161caaddaa"></a><!-- doxytag: member="kudu::client::KuduClient::kNoTimestamp" ref="a196f1a18c000cdca309d05161caaddaa" args="" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">const uint64_t <a class="el" href="classkudu_1_1client_1_1KuduClient.html#a196f1a18c000cdca309d05161caaddaa">kudu::client::KuduClient::kNoTimestamp</a><code> [static]</code></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> |
| <!--- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</a></div> |
| |
| <!-- iframe showing the search results (closed by default) --> |
| <div id="MSearchResultsWindow"> |
| <iframe src="" frameborder="0" |
| name="MSearchResults" id="MSearchResults"> |
| </iframe> |
| </div> |
| |
| <!-- start footer part --> |
| <hr class="footer"/> |
| <address class="footer"> |
| <small>Generated for Kudu version 1.0.1 on Tue Oct 11 08:52:01 2016 by Doxygen 1.6.1</small> |
| <br> |
| <small>Copyright © 2016 The Apache Software Foundation.</small> |
| </address> |
| </body> |
| </html> |