<!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: include/kudu/util/status.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr 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>
<!-- 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 id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_58b01e52e53886b8d78ab5060a2cd2bd.html">kudu</a></li><li class="navelem"><a class="el" href="dir_e8a2e446cf73a5a1ae0ad6a5a21b6d03.html">util</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle"><div class="title">status.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;errno.h&gt;</code><br />
<code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;cstddef&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &quot;kudu/client/stubs.h&quot;</code><br />
<code>#include &quot;kudu/util/kudu_export.h&quot;</code><br />
<code>#include &quot;kudu/util/slice.h&quot;</code><br />
</div>
<p><a href="status_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1Status.html">kudu::Status</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A representation of an operation's outcome.  <a href="classkudu_1_1Status.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a0de56a3f0e9d83b8ffdd63eac83c54ab" id="r_a0de56a3f0e9d83b8ffdd63eac83c54ab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html#a0de56a3f0e9d83b8ffdd63eac83c54ab">KUDU_RETURN_NOT_OK</a>(s)</td></tr>
<tr class="memdesc:a0de56a3f0e9d83b8ffdd63eac83c54ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the given status if it is not <code>OK</code>.  <br /></td></tr>
<tr class="separator:a0de56a3f0e9d83b8ffdd63eac83c54ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af66b8458f1d3f1264c1da86744e29e46" id="r_af66b8458f1d3f1264c1da86744e29e46"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html#af66b8458f1d3f1264c1da86744e29e46">KUDU_RETURN_NOT_OK_PREPEND</a>(s,  msg)</td></tr>
<tr class="memdesc:af66b8458f1d3f1264c1da86744e29e46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the given status if it is not OK, but first clone it and prepend the given message.  <br /></td></tr>
<tr class="separator:af66b8458f1d3f1264c1da86744e29e46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58d31c81bf1101a3ead737e9a4a4f223" id="r_a58d31c81bf1101a3ead737e9a4a4f223"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html#a58d31c81bf1101a3ead737e9a4a4f223">KUDU_RETURN_NOT_OK_RET</a>(to_call,  to_return)</td></tr>
<tr class="memdesc:a58d31c81bf1101a3ead737e9a4a4f223"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <code>to_return</code> if <code>to_call</code> returns a bad status. The substitution for 'to_return' may reference the variable <code>s</code> for the bad status.  <br /></td></tr>
<tr class="separator:a58d31c81bf1101a3ead737e9a4a4f223"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fd1f0d6a9b2457c18e218d3540c4b3e" id="r_a8fd1f0d6a9b2457c18e218d3540c4b3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html#a8fd1f0d6a9b2457c18e218d3540c4b3e">KUDU_RETURN_NOT_OK_EVAL</a>(s,  on_error)</td></tr>
<tr class="memdesc:a8fd1f0d6a9b2457c18e218d3540c4b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the given status if it is not OK, evaluating <code>on_error</code> if so.  <br /></td></tr>
<tr class="separator:a8fd1f0d6a9b2457c18e218d3540c4b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e64fec5ef85c0c738f6ac3f398f607e" id="r_a1e64fec5ef85c0c738f6ac3f398f607e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html#a1e64fec5ef85c0c738f6ac3f398f607e">KUDU_WARN_NOT_OK</a>(to_call,  warning_prefix)</td></tr>
<tr class="memdesc:a1e64fec5ef85c0c738f6ac3f398f607e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Emit a warning if <code>to_call</code> returns a bad status.  <br /></td></tr>
<tr class="separator:a1e64fec5ef85c0c738f6ac3f398f607e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbd85cc2c5535627091bb06a21918150" id="r_abbd85cc2c5535627091bb06a21918150"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html#abbd85cc2c5535627091bb06a21918150">KUDU_LOG_AND_RETURN</a>(level,  status)</td></tr>
<tr class="memdesc:abbd85cc2c5535627091bb06a21918150"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log the given status and return immediately.  <br /></td></tr>
<tr class="separator:abbd85cc2c5535627091bb06a21918150"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af09a6a2eca53c9424d74c7fd9f39c5ce" id="r_af09a6a2eca53c9424d74c7fd9f39c5ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html#af09a6a2eca53c9424d74c7fd9f39c5ce">KUDU_RETURN_NOT_OK_LOG</a>(s,  level,  msg)</td></tr>
<tr class="memdesc:af09a6a2eca53c9424d74c7fd9f39c5ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the given status is not OK, log it and 'msg' at 'level' and return the status.  <br /></td></tr>
<tr class="separator:af09a6a2eca53c9424d74c7fd9f39c5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706c9f6ef1715b8f7a9185fb3c247d3f" id="r_a706c9f6ef1715b8f7a9185fb3c247d3f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html#a706c9f6ef1715b8f7a9185fb3c247d3f">KUDU_CHECK_OK_PREPEND</a>(to_call,  msg)</td></tr>
<tr class="memdesc:a706c9f6ef1715b8f7a9185fb3c247d3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">If <code>to_call</code> returns a bad status, CHECK immediately with a logged message of <code>msg</code> followed by the status.  <br /></td></tr>
<tr class="separator:a706c9f6ef1715b8f7a9185fb3c247d3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac503ba85e942147294cdc82087da60f6" id="r_ac503ba85e942147294cdc82087da60f6"><td class="memItemLeft" align="right" valign="top"><a id="ac503ba85e942147294cdc82087da60f6" name="ac503ba85e942147294cdc82087da60f6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>KUDU_CHECK_OK</b>(s)&#160;&#160;&#160;<a class="el" href="status_8h.html#a706c9f6ef1715b8f7a9185fb3c247d3f">KUDU_CHECK_OK_PREPEND</a>(s, &quot;Bad status&quot;)</td></tr>
<tr class="memdesc:ac503ba85e942147294cdc82087da60f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the status is bad, CHECK immediately, appending the status to the logged message. <br /></td></tr>
<tr class="separator:ac503ba85e942147294cdc82087da60f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b360b53025724bb97d1dc21e25e26cc" id="r_a2b360b53025724bb97d1dc21e25e26cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html#a2b360b53025724bb97d1dc21e25e26cc">KUDU_DCHECK_OK_PREPEND</a>(to_call,  msg)</td></tr>
<tr class="memdesc:a2b360b53025724bb97d1dc21e25e26cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">If <code>to_call</code> returns a bad status, DCHECK immediately with a logged message of <code>msg</code> followed by the status.  <br /></td></tr>
<tr class="separator:a2b360b53025724bb97d1dc21e25e26cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99332afa18f00de3c7fcf3e76949df9d" id="r_a99332afa18f00de3c7fcf3e76949df9d"><td class="memItemLeft" align="right" valign="top"><a id="a99332afa18f00de3c7fcf3e76949df9d" name="a99332afa18f00de3c7fcf3e76949df9d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>KUDU_DCHECK_OK</b>(s)&#160;&#160;&#160;<a class="el" href="status_8h.html#a2b360b53025724bb97d1dc21e25e26cc">KUDU_DCHECK_OK_PREPEND</a>(s, &quot;Bad status&quot;)</td></tr>
<tr class="memdesc:a99332afa18f00de3c7fcf3e76949df9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the status is bad, DCHECK immediately, appending the status to the logged 'Bad status' message. <br /></td></tr>
<tr class="separator:a99332afa18f00de3c7fcf3e76949df9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd6e72ed025e6e0afddf4e19ca10cdba" id="r_abd6e72ed025e6e0afddf4e19ca10cdba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html#abd6e72ed025e6e0afddf4e19ca10cdba">KUDU_RETURN_MAIN_NOT_OK</a>(to_call,  msg,  ret_code)</td></tr>
<tr class="memdesc:abd6e72ed025e6e0afddf4e19ca10cdba"><td class="mdescLeft">&#160;</td><td class="mdescRight">A macro to use at the main() function level if it's necessary to return a non-zero status from the main() based on the non-OK status 's' and extra message 'msg' prepended. The desired return code is passed as 'ret_code' parameter.  <br /></td></tr>
<tr class="separator:abd6e72ed025e6e0afddf4e19ca10cdba"><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>This header is used in both the Kudu build as well as in builds of applications that use the Kudu C++ client. In the latter we need to be careful to "namespace" our macros, to avoid colliding or overriding with similarly named macros belonging to the application.</p>
<p>KUDU_HEADERS_USE_SHORT_STATUS_MACROS handles this behavioral change. When defined, we're building Kudu and: </p><ul>
<li>Non-namespaced macros are allowed and mapped to the namespaced versions defined above. </li>
<li>Namespaced versions of glog macros are mapped to the real glog macros (otherwise the macros are defined in the C++ client stubs). </li>
</ul>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a706c9f6ef1715b8f7a9185fb3c247d3f" name="a706c9f6ef1715b8f7a9185fb3c247d3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a706c9f6ef1715b8f7a9185fb3c247d3f">&#9670;&#160;</a></span>KUDU_CHECK_OK_PREPEND</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KUDU_CHECK_OK_PREPEND</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">to_call, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">msg&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> { \</div>
<div class="line">    const ::kudu::Status&amp; _s = (to_call);                   \</div>
<div class="line">    KUDU_CHECK(_s.ok()) &lt;&lt; (msg) &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; _s.ToString();  \</div>
<div class="line">  } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>If <code>to_call</code> returns a bad status, CHECK immediately with a logged message of <code>msg</code> followed by the status. </p>

</div>
</div>
<a id="a2b360b53025724bb97d1dc21e25e26cc" name="a2b360b53025724bb97d1dc21e25e26cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b360b53025724bb97d1dc21e25e26cc">&#9670;&#160;</a></span>KUDU_DCHECK_OK_PREPEND</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KUDU_DCHECK_OK_PREPEND</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">to_call, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">msg&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> { \</div>
<div class="line">    const ::kudu::Status&amp; _s = (to_call);                   \</div>
<div class="line">    KUDU_DCHECK(_s.ok()) &lt;&lt; (msg) &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; _s.ToString();  \</div>
<div class="line">  } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>If <code>to_call</code> returns a bad status, DCHECK immediately with a logged message of <code>msg</code> followed by the status. </p>

</div>
</div>
<a id="abbd85cc2c5535627091bb06a21918150" name="abbd85cc2c5535627091bb06a21918150"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbd85cc2c5535627091bb06a21918150">&#9670;&#160;</a></span>KUDU_LOG_AND_RETURN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KUDU_LOG_AND_RETURN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">level, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">status&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> { \</div>
<div class="line">    const ::kudu::Status&amp; _s = (status);        \</div>
<div class="line">    KUDU_LOG(level) &lt;&lt; _s.ToString(); \</div>
<div class="line">    <span class="keywordflow">return</span> _s; \</div>
<div class="line">  } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>Log the given status and return immediately. </p>

</div>
</div>
<a id="abd6e72ed025e6e0afddf4e19ca10cdba" name="abd6e72ed025e6e0afddf4e19ca10cdba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd6e72ed025e6e0afddf4e19ca10cdba">&#9670;&#160;</a></span>KUDU_RETURN_MAIN_NOT_OK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KUDU_RETURN_MAIN_NOT_OK</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">to_call, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">msg, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ret_code&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> { \</div>
<div class="line">    DCHECK_NE(0, (ret_code)) &lt;&lt; <span class="stringliteral">&quot;non-OK return code should not be 0&quot;</span>; \</div>
<div class="line">    const ::kudu::Status&amp; _s = (to_call); \</div>
<div class="line">    if (!_s.ok()) { \</div>
<div class="line">      const ::kudu::Status&amp; _ss = _s.CloneAndPrepend((msg)); \</div>
<div class="line">      LOG(ERROR) &lt;&lt; _ss.ToString(); \</div>
<div class="line">      return (ret_code); \</div>
<div class="line">    } \</div>
<div class="line">  } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>A macro to use at the main() function level if it's necessary to return a non-zero status from the main() based on the non-OK status 's' and extra message 'msg' prepended. The desired return code is passed as 'ret_code' parameter. </p>

</div>
</div>
<a id="a0de56a3f0e9d83b8ffdd63eac83c54ab" name="a0de56a3f0e9d83b8ffdd63eac83c54ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0de56a3f0e9d83b8ffdd63eac83c54ab">&#9670;&#160;</a></span>KUDU_RETURN_NOT_OK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KUDU_RETURN_NOT_OK</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> { \</div>
<div class="line">    const ::kudu::Status&amp; _s = (s);             \</div>
<div class="line">    if (PREDICT_FALSE(!_s.ok())) return _s;     \</div>
<div class="line">  } while (0)</div>
</div><!-- fragment -->
<p>Return the given status if it is not <code>OK</code>. </p>

</div>
</div>
<a id="a8fd1f0d6a9b2457c18e218d3540c4b3e" name="a8fd1f0d6a9b2457c18e218d3540c4b3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fd1f0d6a9b2457c18e218d3540c4b3e">&#9670;&#160;</a></span>KUDU_RETURN_NOT_OK_EVAL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KUDU_RETURN_NOT_OK_EVAL</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">on_error&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> { \</div>
<div class="line">    const ::kudu::Status&amp; _s = (s); \</div>
<div class="line">    if (PREDICT_FALSE(!_s.ok())) { \</div>
<div class="line">      (on_error); \</div>
<div class="line">      <span class="keywordflow">return</span> _s; \</div>
<div class="line">    } \</div>
<div class="line">  } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>Return the given status if it is not OK, evaluating <code>on_error</code> if so. </p>

</div>
</div>
<a id="af09a6a2eca53c9424d74c7fd9f39c5ce" name="af09a6a2eca53c9424d74c7fd9f39c5ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af09a6a2eca53c9424d74c7fd9f39c5ce">&#9670;&#160;</a></span>KUDU_RETURN_NOT_OK_LOG</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KUDU_RETURN_NOT_OK_LOG</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">level, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">msg&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> { \</div>
<div class="line">    const ::kudu::Status&amp; _s = (s);             \</div>
<div class="line">    if (PREDICT_FALSE(!_s.ok())) { \</div>
<div class="line">      KUDU_LOG(level) &lt;&lt; <span class="stringliteral">&quot;Status: &quot;</span> &lt;&lt; _s.ToString() &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; (msg); \</div>
<div class="line">      <span class="keywordflow">return</span> _s;     \</div>
<div class="line">    } \</div>
<div class="line">  } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>If the given status is not OK, log it and 'msg' at 'level' and return the status. </p>

</div>
</div>
<a id="af66b8458f1d3f1264c1da86744e29e46" name="af66b8458f1d3f1264c1da86744e29e46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af66b8458f1d3f1264c1da86744e29e46">&#9670;&#160;</a></span>KUDU_RETURN_NOT_OK_PREPEND</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KUDU_RETURN_NOT_OK_PREPEND</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">msg&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> { \</div>
<div class="line">    const ::kudu::Status&amp; _s = (s);                              \</div>
<div class="line">    if (PREDICT_FALSE(!_s.ok())) return _s.CloneAndPrepend(msg); \</div>
<div class="line">  } while (0)</div>
</div><!-- fragment -->
<p>Return the given status if it is not OK, but first clone it and prepend the given message. </p>

</div>
</div>
<a id="a58d31c81bf1101a3ead737e9a4a4f223" name="a58d31c81bf1101a3ead737e9a4a4f223"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58d31c81bf1101a3ead737e9a4a4f223">&#9670;&#160;</a></span>KUDU_RETURN_NOT_OK_RET</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KUDU_RETURN_NOT_OK_RET</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">to_call, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">to_return&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> { \</div>
<div class="line">    const ::kudu::Status&amp; s = (to_call);                \</div>
<div class="line">    if (PREDICT_FALSE(!s.ok())) return (to_return);  \</div>
<div class="line">  } while (0)</div>
</div><!-- fragment -->
<p>Return <code>to_return</code> if <code>to_call</code> returns a bad status. The substitution for 'to_return' may reference the variable <code>s</code> for the bad status. </p>

</div>
</div>
<a id="a1e64fec5ef85c0c738f6ac3f398f607e" name="a1e64fec5ef85c0c738f6ac3f398f607e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e64fec5ef85c0c738f6ac3f398f607e">&#9670;&#160;</a></span>KUDU_WARN_NOT_OK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KUDU_WARN_NOT_OK</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">to_call, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">warning_prefix&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> { \</div>
<div class="line">    const ::kudu::Status&amp; _s = (to_call);              \</div>
<div class="line">    if (PREDICT_FALSE(!_s.ok())) { \</div>
<div class="line">      KUDU_LOG(WARNING) &lt;&lt; (warning_prefix) &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; _s.ToString();  \</div>
<div class="line">    } \</div>
<div class="line">  } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>Emit a warning if <code>to_call</code> returns a bad status. </p>

</div>
</div>
</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>
