<!-- 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: Class List</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&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;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 class="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1internal__logging_1_1CerrLog.html">kudu::internal_logging::CerrLog</a></td><td class="indexvalue">A helper for stderr log sink </td></tr>
  <tr><td class="indexkey"><a class="el" href="structkudu_1_1Slice_1_1Comparator.html">kudu::Slice::Comparator</a></td><td class="indexvalue"><a class="el" href="structkudu_1_1Slice_1_1Comparator.html" title="Comparator struct, useful for ordered collections (like STL maps).">Comparator</a> struct, useful for ordered collections (like STL maps) </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="indexvalue">A handle for a connection to a cluster </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="indexvalue">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 </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduColumnSchema.html">kudu::client::KuduColumnSchema</a></td><td class="indexvalue">Representation of the column schema </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduColumnSpec.html">kudu::client::KuduColumnSpec</a></td><td class="indexvalue">Builder API for specifying or altering a column within a table schema </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduColumnStorageAttributes.html">kudu::client::KuduColumnStorageAttributes</a></td><td class="indexvalue">Representation of column storage attributes </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduDelete.html">kudu::client::KuduDelete</a></td><td class="indexvalue">A single row delete to be sent to the cluster </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduError.html">kudu::client::KuduError</a></td><td class="indexvalue">This class represents an error which occurred in a write operation </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduInsert.html">kudu::client::KuduInsert</a></td><td class="indexvalue">A single row insert to be sent to the cluster </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduLoggingCallback.html">kudu::client::KuduLoggingCallback</a></td><td class="indexvalue">The interface for all logging callbacks </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html">kudu::client::KuduLoggingFunctionCallback&lt; T &gt;</a></td><td class="indexvalue">The logging callback that invokes a function by pointer with a single argument </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html">kudu::client::KuduLoggingMemberCallback&lt; T &gt;</a></td><td class="indexvalue">The logging callback that invokes a member function of an object </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1KuduPartialRow.html">kudu::KuduPartialRow</a></td><td class="indexvalue">A row which may only contain values for a subset of the columns </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduPredicate.html">kudu::client::KuduPredicate</a></td><td class="indexvalue">A representation of comparison predicate for Kudu queries </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduReplica.html">kudu::client::KuduReplica</a></td><td class="indexvalue">In-memory representation of a remote tablet's replica </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html">kudu::client::KuduScanBatch</a></td><td class="indexvalue">A batch of zero or more rows returned by a scan operation </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html">kudu::client::KuduScanner</a></td><td class="indexvalue">This class is a representation of a single scan </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduScanToken.html">kudu::client::KuduScanToken</a></td><td class="indexvalue">A scan descriptor limited to a single physical contiguous location </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduScanTokenBuilder.html">kudu::client::KuduScanTokenBuilder</a></td><td class="indexvalue">Builds scan tokens for a table </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduSchema.html">kudu::client::KuduSchema</a></td><td class="indexvalue">A representation of a table's schema </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html">kudu::client::KuduSchemaBuilder</a></td><td class="indexvalue">Builder API for constructing a <a class="el" href="classkudu_1_1client_1_1KuduSchema.html" title="A representation of a table&#39;s schema.">KuduSchema</a> object </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduSession.html">kudu::client::KuduSession</a></td><td class="indexvalue">Representation of a Kudu client session </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduStatusCallback.html">kudu::client::KuduStatusCallback</a></td><td class="indexvalue">The interface for all status callbacks </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduStatusFunctionCallback.html">kudu::client::KuduStatusFunctionCallback&lt; T &gt;</a></td><td class="indexvalue">The status callback that invokes a function by pointer with a single argument </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduStatusMemberCallback.html">kudu::client::KuduStatusMemberCallback&lt; T &gt;</a></td><td class="indexvalue">The status callback that invokes a member function of an object </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduTable.html">kudu::client::KuduTable</a></td><td class="indexvalue">A representation of a table on a particular cluster </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduTableAlterer.html">kudu::client::KuduTableAlterer</a></td><td class="indexvalue">Alters an existing table based on the provided steps </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduTableCreator.html">kudu::client::KuduTableCreator</a></td><td class="indexvalue">A helper class to create a new table with the desired options </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduTablet.html">kudu::client::KuduTablet</a></td><td class="indexvalue">In-memory representation of a remote tablet </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html">kudu::client::KuduTabletServer</a></td><td class="indexvalue">In-memory representation of a remote tablet server </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduUpdate.html">kudu::client::KuduUpdate</a></td><td class="indexvalue">A single row update to be sent to the cluster </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduUpsert.html">kudu::client::KuduUpsert</a></td><td class="indexvalue">A single row upsert to be sent to the cluster </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduValue.html">kudu::client::KuduValue</a></td><td class="indexvalue">A constant cell value with a specific type </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="indexvalue">A single-row write operation to be sent to a Kudu table </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1MonoDelta.html">kudu::MonoDelta</a></td><td class="indexvalue">A representation of a time interval </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1MonoTime.html">kudu::MonoTime</a></td><td class="indexvalue">Representation of a particular point in time </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1internal__logging_1_1NullLog.html">kudu::internal_logging::NullLog</a></td><td class="indexvalue">A helper for the nil log sink </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1client_1_1ResourceMetrics.html">kudu::client::ResourceMetrics</a></td><td class="indexvalue">A generic catalog of simple metrics </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1Slice.html">kudu::Slice</a></td><td class="indexvalue">A wrapper around externally allocated data </td></tr>
  <tr><td class="indexkey"><a class="el" href="structkudu_1_1SliceMap.html">kudu::SliceMap&lt; T &gt;</a></td><td class="indexvalue">STL map whose keys are Slices </td></tr>
  <tr><td class="indexkey"><a class="el" href="classkudu_1_1Status.html">kudu::Status</a></td><td class="indexvalue">A representation of an operation's outcome </td></tr>
  <tr><td class="indexkey"><a class="el" href="structStubsCompileAssert.html">StubsCompileAssert&lt; bool &gt;</a></td><td class="indexvalue"></td></tr>
</table>
</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">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</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>
