<!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" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Kudu C++ client API: Class Members - Functions</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 id="projectrow">
  <td id="projectalign">
   <div id="projectname">Kudu C++ client API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- 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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="contents">
<div class="textblock">Here is a list of all documented functions with links to the class documentation for each member:</div>

<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>release_failed_op()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduError.html#a4bd0feeb1701da73f7702ce6b09a3b4c">kudu::client::KuduError</a></li>
<li>relocate()&#160;:&#160;<a class="el" href="classkudu_1_1Slice.html#a4bb1c9fe13873623b5a5a118830b1806">kudu::Slice</a></li>
<li>RemoteError()&#160;:&#160;<a class="el" href="classkudu_1_1Status.html#aefdc372dd5a3c4e122bb9f49738c667f">kudu::Status</a></li>
<li>remove_prefix()&#160;:&#160;<a class="el" href="classkudu_1_1Slice.html#a00f5d310f9ebf17c198cf3feb69c3842">kudu::Slice</a></li>
<li>RemoveDefault()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduColumnSpec.html#a295f02caf318e55e3b1e33d80e1cd993">kudu::client::KuduColumnSpec</a></li>
<li>RenameTo()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduColumnSpec.html#a255f1a22e4e5111e3f7a26b9234e7a5d">kudu::client::KuduColumnSpec</a>, <a class="el" href="classkudu_1_1client_1_1KuduTableAlterer.html#ae83c4770876b85231908c6d9486d670a">kudu::client::KuduTableAlterer</a></li>
<li>replicas()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduTablet.html#ae96a417372dbb6a687bd27dbd047ab1c">kudu::client::KuduTablet</a></li>
<li>require_authentication()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a155bd666a678a20a2a87b2cc5ba55d68">kudu::client::KuduClientBuilder</a></li>
<li>Reset()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduSchema.html#a3f51ccf1a7e6f4a4fe4958073305dbab">kudu::client::KuduSchema</a></li>
<li>Rollback()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#a68b5c532b44f84beabe7ae7ca46889f8">kudu::client::KuduTransaction</a></li>
<li>Row()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a3f6366606eec7f0d0a8953ff6a81c320">kudu::client::KuduScanBatch</a></li>
<li>row()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a8f3d609ad94525678efe05e1936a65eb">kudu::client::KuduWriteOperation</a></li>
<li>RowPtr()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a92bbfa48e9b503181c2dfb5f11f14e4e">kudu::client::KuduScanBatch</a></li>
<li>Run()&#160;:&#160;<a class="el" href="classkudu_1_1client_1_1KuduLoggingCallback.html#a59db98413fb312d260fcb08299bae89c">kudu::client::KuduLoggingCallback</a>, <a class="el" href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html#ae22e9139102f60d049c29e888c6a528d">kudu::client::KuduLoggingFunctionCallback&lt; T &gt;</a>, <a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html#aafb1373a805d6e05c0fc5715927677c9">kudu::client::KuduLoggingMemberCallback&lt; T &gt;</a>, <a class="el" href="classkudu_1_1client_1_1KuduStatusCallback.html#a2333beedb1d0c08a8c127b4552fbeb07">kudu::client::KuduStatusCallback</a>, <a class="el" href="classkudu_1_1client_1_1KuduStatusFunctionCallback.html#af4c3e7fbd4fed52bcba220f95a27f70a">kudu::client::KuduStatusFunctionCallback&lt; T &gt;</a>, <a class="el" href="classkudu_1_1client_1_1KuduStatusMemberCallback.html#a94bde1bdcb3cde6f78b11d822be19232">kudu::client::KuduStatusMemberCallback&lt; T &gt;</a></li>
<li>RuntimeError()&#160;:&#160;<a class="el" href="classkudu_1_1Status.html#a2da56794897fa2cb3c96181f29796692">kudu::Status</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/>
<address class="footer">
  <small>Generated for Kudu version 1.17.0 on Mon Sep 4 2023 19:49:30 by Doxygen 1.9.8</small>
  <br>
  <small>Copyright © 2023 The Apache Software Foundation.</small>
</address>
</body>
</html>
