| <!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>Impala: be/src/util/jni-util.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="navtree.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="resize.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(initResizable); |
| $(window).load(resizeHeight); |
| </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">Impala |
| </div> |
| <div id="projectbrief">Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.</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 Page</span></a></li> |
| <li><a href="namespaces.html"><span>Namespaces</span></a></li> |
| <li><a href="annotated.html"><span>Classes</span></a></li> |
| <li class="current"><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="files.html"><span>File List</span></a></li> |
| <li><a href="globals.html"><span>File Members</span></a></li> |
| </ul> |
| </div> |
| </div><!-- top --> |
| <div id="side-nav" class="ui-resizable side-nav-resizable"> |
| <div id="nav-tree"> |
| <div id="nav-tree-contents"> |
| <div id="nav-sync" class="sync"></div> |
| </div> |
| </div> |
| <div id="splitbar" style="-moz-user-select:none;" |
| class="ui-resizable-handle"> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| $(document).ready(function(){initNavTree('jni-util_8h.html','');}); |
| </script> |
| <div id="doc-content"> |
| <!-- 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>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</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 class="header"> |
| <div class="summary"> |
| <a href="#nested-classes">Classes</a> | |
| <a href="#namespaces">Namespaces</a> | |
| <a href="#define-members">Macros</a> | |
| <a href="#func-members">Functions</a> </div> |
| <div class="headertitle"> |
| <div class="title">jni-util.h File Reference</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <div class="textblock"><code>#include <jni.h></code><br/> |
| <code>#include <string></code><br/> |
| <code>#include <vector></code><br/> |
| <code>#include "<a class="el" href="status_8h_source.html">common/status.h</a>"</code><br/> |
| <code>#include "gen-cpp/Frontend_types.h"</code><br/> |
| </div><div class="textblock"><div class="dynheader"> |
| Include dependency graph for jni-util.h:</div> |
| <div class="dyncontent"> |
| <div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="jni-util_8h__incl.svg" width="100%" height="520"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div> |
| </div> |
| </div><div class="textblock"><div class="dynheader"> |
| This graph shows which files directly or indirectly include this file:</div> |
| <div class="dyncontent"> |
| <div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="jni-util_8h__dep__incl.svg" width="100%" height="464"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div> |
| </div> |
| </div> |
| <p><a href="jni-util_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 name="nested-classes"></a> |
| Classes</h2></td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1JniLocalFrame.html">impala::JniLocalFrame</a></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structimpala_1_1JniMethodDescriptor.html">impala::JniMethodDescriptor</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Describes one method to look up in a Java object. <a href="structimpala_1_1JniMethodDescriptor.html#details">More...</a><br/></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1JniUtil.html">impala::JniUtil</a></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a> |
| Namespaces</h2></td></tr> |
| <tr class="memitem:namespaceimpala"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceimpala.html">impala</a></td></tr> |
| <tr class="memdesc:namespaceimpala"><td class="mdescLeft"> </td><td class="mdescRight">This file contains type definitions that are used throughout the code base. <br/></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> |
| Macros</h2></td></tr> |
| <tr class="memitem:a07bd00c5a7c7bd9a05b26aa67305a966"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="jni-util_8h.html#a07bd00c5a7c7bd9a05b26aa67305a966">THROW_IF_ERROR_WITH_LOGGING</a>(stmt, env, adaptor)</td></tr> |
| <tr class="separator:a07bd00c5a7c7bd9a05b26aa67305a966"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a5d3c12fb9efc3eebaff42b7ed1fb21e2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="jni-util_8h.html#a5d3c12fb9efc3eebaff42b7ed1fb21e2">THROW_IF_ERROR</a>(stmt, env, impala_exc_cl)</td></tr> |
| <tr class="separator:a5d3c12fb9efc3eebaff42b7ed1fb21e2"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a493556cb66edd2e0f33e627ddb89762d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="jni-util_8h.html#a493556cb66edd2e0f33e627ddb89762d">THROW_IF_ERROR_RET</a>(stmt, env, impala_exc_cl, ret)</td></tr> |
| <tr class="separator:a493556cb66edd2e0f33e627ddb89762d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac9f2e6a8ae21af43b32c6ee93cf41ee7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="jni-util_8h.html#ac9f2e6a8ae21af43b32c6ee93cf41ee7">THROW_IF_EXC</a>(env, exc_class)</td></tr> |
| <tr class="separator:ac9f2e6a8ae21af43b32c6ee93cf41ee7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a0b45e4b859353997f313000176abf822"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="jni-util_8h.html#a0b45e4b859353997f313000176abf822">RETURN_IF_EXC</a>(env)</td></tr> |
| <tr class="separator:a0b45e4b859353997f313000176abf822"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac6d6cbef676d753f1a2f05a2686e6194"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="jni-util_8h.html#ac6d6cbef676d753f1a2f05a2686e6194">EXIT_IF_EXC</a>(env)</td></tr> |
| <tr class="separator:ac6d6cbef676d753f1a2f05a2686e6194"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2070c5a22a08170e919312a008ce0ce7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="jni-util_8h.html#a2070c5a22a08170e919312a008ce0ce7">RETURN_ERROR_IF_EXC</a>(env)</td></tr> |
| <tr class="separator:a2070c5a22a08170e919312a008ce0ce7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:abee9e150fe8fd025e901b7bbeac19d02"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="jni-util_8h.html#abee9e150fe8fd025e901b7bbeac19d02">EXIT_IF_JNIERROR</a>(stmt)</td></tr> |
| <tr class="separator:abee9e150fe8fd025e901b7bbeac19d02"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a568f858a53f3da2822718133c259ce42"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="jni-util_8h.html#a568f858a53f3da2822718133c259ce42">RETURN_IF_JNIERROR</a>(stmt)</td></tr> |
| <tr class="separator:a568f858a53f3da2822718133c259ce42"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> |
| Functions</h2></td></tr> |
| <tr class="memitem:a5469ac47d225e5773fe76593a75f29c6"><td class="memItemLeft" align="right" valign="top">JNIEnv * </td><td class="memItemRight" valign="bottom"><a class="el" href="jni-util_8h.html#a5469ac47d225e5773fe76593a75f29c6">getJNIEnv</a> (void)</td></tr> |
| <tr class="memdesc:a5469ac47d225e5773fe76593a75f29c6"><td class="mdescLeft"> </td><td class="mdescRight">C linkage for helper functions in hdfsJniHelper.h. <a href="#a5469ac47d225e5773fe76593a75f29c6">More...</a><br/></td></tr> |
| <tr class="separator:a5469ac47d225e5773fe76593a75f29c6"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <h2 class="groupheader">Macro Definition Documentation</h2> |
| <a class="anchor" id="ac6d6cbef676d753f1a2f05a2686e6194"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define EXIT_IF_EXC</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">env</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"> jthrowable exc = (env)->ExceptionOccurred(); \</div> |
| <div class="line"> if (exc != NULL) { \</div> |
| <div class="line"> jstring stack = (jstring) env->CallStaticObjectMethod(JniUtil::jni_util_class(), \</div> |
| <div class="line"> (JniUtil::throwable_to_stack_trace_id()), exc); \</div> |
| <div class="line"> jboolean is_copy; \</div> |
| <div class="line"> const <span class="keywordtype">char</span>* c_stack = \</div> |
| <div class="line"> reinterpret_cast<<span class="keyword">const</span> <span class="keywordtype">char</span>*>((env)->GetStringUTFChars(stack, &is_copy)); \</div> |
| <div class="line"> LOG(ERROR) << string(c_stack); \</div> |
| <div class="line"> exit(1); \</div> |
| <div class="line"> } \</div> |
| <div class="line"> } <span class="keywordflow">while</span> (<span class="keyword">false</span>)</div> |
| </div><!-- fragment --> |
| <p>Definition at line <a class="el" href="jni-util_8h_source.html#l00085">85</a> of file <a class="el" href="jni-util_8h_source.html">jni-util.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="catalog_8cc_source.html#l00039">impala::Catalog::Catalog()</a>, <a class="el" href="frontend_8cc_source.html#l00054">impala::Frontend::Frontend()</a>, <a class="el" href="fe-support_8cc_source.html#l00346">impala::InitFeSupport()</a>, <a class="el" href="logging-support_8cc_source.html#l00073">impala::InitJvmLoggingSupport()</a>, <a class="el" href="expr-benchmark_8cc_source.html#l00040">Planner::Planner()</a>, and <a class="el" href="request-pool-service_8cc_source.html#l00067">impala::RequestPoolService::RequestPoolService()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="abee9e150fe8fd025e901b7bbeac19d02"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define EXIT_IF_JNIERROR</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">stmt</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"> if ((stmt) != JNI_OK) { \</div> |
| <div class="line"> cerr << #stmt << <span class="stringliteral">" resulted in a jni error"</span>; \</div> |
| <div class="line"> exit(1); \</div> |
| <div class="line"> } \</div> |
| <div class="line"> } <span class="keywordflow">while</span> (<span class="keyword">false</span>)</div> |
| </div><!-- fragment --> |
| <p>Definition at line <a class="el" href="jni-util_8h_source.html#l00105">105</a> of file <a class="el" href="jni-util_8h_source.html">jni-util.h</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2070c5a22a08170e919312a008ce0ce7"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define RETURN_ERROR_IF_EXC</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">env</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"> jthrowable exc = (env)->ExceptionOccurred(); \</div> |
| <div class="line"> if (exc != NULL) return JniUtil::GetJniExceptionMsg(env);\</div> |
| <div class="line"> } while (false)</div> |
| </div><!-- fragment --> |
| <p>Definition at line <a class="el" href="jni-util_8h_source.html#l00099">99</a> of file <a class="el" href="jni-util_8h_source.html">jni-util.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="hbase-table-writer_8cc_source.html#l00112">impala::HBaseTableWriter::AppendRowBatch()</a>, <a class="el" href="external-data-source-executor_8cc_source.html#l00086">CallJniMethod()</a>, <a class="el" href="jni-util_8h_source.html#l00231">impala::JniUtil::CallJniMethod()</a>, <a class="el" href="hbase-table-writer_8cc_source.html#l00199">impala::HBaseTableWriter::CleanUpJni()</a>, <a class="el" href="hbase-table-writer_8cc_source.html#l00254">impala::HBaseTableWriter::CreateByteArray()</a>, <a class="el" href="hbase-table-writer_8cc_source.html#l00229">impala::HBaseTableWriter::CreatePut()</a>, <a class="el" href="hbase-table-writer_8cc_source.html#l00219">impala::HBaseTableWriter::CreatePutList()</a>, <a class="el" href="expr-benchmark_8cc_source.html#l00056">Planner::GeneratePlan()</a>, <a class="el" href="catalog_8cc_source.html#l00087">impala::Catalog::GetAllCatalogObjects()</a>, <a class="el" href="jni-util_8cc_source.html#l00056">impala::JniUtil::GetGlobalClassRef()</a>, <a class="el" href="hbase-table_8cc_source.html#l00132">impala::HBaseTable::GetResultScanner()</a>, <a class="el" href="hbase-table-scanner_8cc_source.html#l00622">impala::HBaseTableScanner::GetRowKey()</a>, <a class="el" href="hbase-table_8cc_source.html#l00068">impala::HBaseTable::Init()</a>, <a class="el" href="hbase-table-factory_8cc_source.html#l00032">impala::HBaseTableFactory::Init()</a>, <a class="el" href="external-data-source-executor_8cc_source.html#l00035">impala::ExternalDataSourceExecutor::Init()</a>, <a class="el" href="hbase-table-scanner_8cc_source.html#l00113">impala::HBaseTableScanner::Init()</a>, <a class="el" href="hbase-table_8cc_source.html#l00092">impala::HBaseTable::InitJNI()</a>, <a class="el" href="hbase-table-writer_8cc_source.html#l00089">impala::HBaseTableWriter::InitJNI()</a>, <a class="el" href="hbase-table-scanner_8cc_source.html#l00445">impala::HBaseTableScanner::InitScanRange()</a>, <a class="el" href="jni-util_8cc_source.html#l00193">impala::JniUtil::LoadJniMethod()</a>, <a class="el" href="jni-util_8cc_source.html#l00067">impala::JniUtil::LocalToGlobalRef()</a>, <a class="el" href="hbase-table-scanner_8cc_source.html#l00501">impala::HBaseTableScanner::Next()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00176">impala::HiveUdfCall::Open()</a>, <a class="el" href="hbase-table_8cc_source.html#l00143">impala::HBaseTable::Put()</a>, <a class="el" href="hbase-table-scanner_8cc_source.html#l00290">impala::HBaseTableScanner::ScanSetup()</a>, <a class="el" href="jni-thrift-util_8h_source.html#l00027">impala::SerializeThriftMsg()</a>, <a class="el" href="frontend_8cc_source.html#l00228">impala::Frontend::SetCatalogInitialized()</a>, and <a class="el" href="frontend_8cc_source.html#l00183">impala::Frontend::ValidateSettings()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a0b45e4b859353997f313000176abf822"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define RETURN_IF_EXC</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">env</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"> jthrowable exc = (env)->ExceptionOccurred(); \</div> |
| <div class="line"> if (exc != NULL) { \</div> |
| <div class="line"> jstring stack = (jstring) env->CallStaticObjectMethod(JniUtil::jni_util_class(), \</div> |
| <div class="line"> (JniUtil::throwable_to_stack_trace_id()), exc); \</div> |
| <div class="line"> jboolean is_copy; \</div> |
| <div class="line"> const <span class="keywordtype">char</span>* c_stack = \</div> |
| <div class="line"> reinterpret_cast<<span class="keyword">const</span> <span class="keywordtype">char</span>*>((env)->GetStringUTFChars(stack, &is_copy)); \</div> |
| <div class="line"> VLOG(1) << string(c_stack); \</div> |
| <div class="line"> return; \</div> |
| <div class="line"> } \</div> |
| <div class="line"> } <span class="keywordflow">while</span> (<span class="keyword">false</span>)</div> |
| </div><!-- fragment --> |
| <p>Definition at line <a class="el" href="jni-util_8h_source.html#l00071">71</a> of file <a class="el" href="jni-util_8h_source.html">jni-util.h</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a568f858a53f3da2822718133c259ce42"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define RETURN_IF_JNIERROR</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">stmt</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"> if ((stmt) != JNI_OK) { \</div> |
| <div class="line"> stringstream out; \</div> |
| <div class="line"> out << #stmt << <span class="stringliteral">" resulted in a jni error"</span>; \</div> |
| <div class="line"> return Status(out.str()); \</div> |
| <div class="line"> } \</div> |
| <div class="line"> } <span class="keywordflow">while</span> (<span class="keyword">false</span>)</div> |
| </div><!-- fragment --> |
| <p>Definition at line <a class="el" href="jni-util_8h_source.html#l00113">113</a> of file <a class="el" href="jni-util_8h_source.html">jni-util.h</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a5d3c12fb9efc3eebaff42b7ed1fb21e2"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define THROW_IF_ERROR</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">stmt, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">env, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">impala_exc_cl </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"> Status status = (stmt); \</div> |
| <div class="line"> if (!status.ok()) { \</div> |
| <div class="line"> (env)->ThrowNew((impala_exc_cl), status.GetDetail().c_str()); \</div> |
| <div class="line"> return; \</div> |
| <div class="line"> } \</div> |
| <div class="line"> } <span class="keywordflow">while</span> (<span class="keyword">false</span>)</div> |
| </div><!-- fragment --> |
| <p>Definition at line <a class="el" href="jni-util_8h_source.html#l00037">37</a> of file <a class="el" href="jni-util_8h_source.html">jni-util.h</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a493556cb66edd2e0f33e627ddb89762d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define THROW_IF_ERROR_RET</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">stmt, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">env, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">impala_exc_cl, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">ret </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"> Status status = (stmt); \</div> |
| <div class="line"> if (!status.ok()) { \</div> |
| <div class="line"> (env)->ThrowNew((impala_exc_cl), status.GetDetail().c_str()); \</div> |
| <div class="line"> return (ret); \</div> |
| <div class="line"> } \</div> |
| <div class="line"> } <span class="keywordflow">while</span> (<span class="keyword">false</span>)</div> |
| </div><!-- fragment --> |
| <p>Definition at line <a class="el" href="jni-util_8h_source.html#l00046">46</a> of file <a class="el" href="jni-util_8h_source.html">jni-util.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="fe-support_8cc_source.html#l00238">Java_com_cloudera_impala_service_FeSupport_NativeCacheJar()</a>, <a class="el" href="fe-support_8cc_source.html#l00072">Java_com_cloudera_impala_service_FeSupport_NativeEvalConstExprs()</a>, <a class="el" href="fe-support_8cc_source.html#l00305">Java_com_cloudera_impala_service_FeSupport_NativeGetStartupOptions()</a>, <a class="el" href="fe-support_8cc_source.html#l00258">Java_com_cloudera_impala_service_FeSupport_NativeLookupSymbol()</a>, and <a class="el" href="fe-support_8cc_source.html#l00281">Java_com_cloudera_impala_service_FeSupport_NativePrioritizeLoad()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a07bd00c5a7c7bd9a05b26aa67305a966"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define THROW_IF_ERROR_WITH_LOGGING</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">stmt, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">env, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">adaptor </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"> Status status = (stmt); \</div> |
| <div class="line"> if (!status.ok()) { \</div> |
| <div class="line"> (adaptor)->WriteErrorLog(); \</div> |
| <div class="line"> (adaptor)->WriteFileErrors(); \</div> |
| <div class="line"> (env)->ThrowNew((adaptor)->impala_exc_cl(), status.GetDetail().c_str()); \</div> |
| <div class="line"> return; \</div> |
| <div class="line"> } \</div> |
| <div class="line"> } <span class="keywordflow">while</span> (<span class="keyword">false</span>)</div> |
| </div><!-- fragment --> |
| <p>Definition at line <a class="el" href="jni-util_8h_source.html#l00026">26</a> of file <a class="el" href="jni-util_8h_source.html">jni-util.h</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ac9f2e6a8ae21af43b32c6ee93cf41ee7"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define THROW_IF_EXC</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">env, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">exc_class </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"> jthrowable exc = (env)->ExceptionOccurred(); \</div> |
| <div class="line"> if (exc != NULL) { \</div> |
| <div class="line"> DCHECK((throwable_to_string_id_) != NULL); \</div> |
| <div class="line"> jstring stack = (jstring) env->CallStaticObjectMethod(JniUtil::jni_util_class(), \</div> |
| <div class="line"> (JniUtil::throwable_to_stack_trace_id()), exc); \</div> |
| <div class="line"> jboolean is_copy; \</div> |
| <div class="line"> const <span class="keywordtype">char</span>* c_stack = \</div> |
| <div class="line"> reinterpret_cast<<span class="keyword">const</span> <span class="keywordtype">char</span>*>((env)->GetStringUTFChars(stack, &is_copy)); \</div> |
| <div class="line"> (env)->ExceptionClear(); \</div> |
| <div class="line"> (env)->ThrowNew((exc_class), c_stack); \</div> |
| <div class="line"> return; \</div> |
| <div class="line"> } \</div> |
| <div class="line"> } <span class="keywordflow">while</span> (<span class="keyword">false</span>)</div> |
| </div><!-- fragment --> |
| <p>Definition at line <a class="el" href="jni-util_8h_source.html#l00055">55</a> of file <a class="el" href="jni-util_8h_source.html">jni-util.h</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Function Documentation</h2> |
| <a class="anchor" id="a5469ac47d225e5773fe76593a75f29c6"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">JNIEnv* getJNIEnv </td> |
| <td>(</td> |
| <td class="paramtype">void </td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>C linkage for helper functions in hdfsJniHelper.h. </p> |
| |
| <p>Referenced by <a class="el" href="hbase-table-writer_8cc_source.html#l00112">impala::HBaseTableWriter::AppendRowBatch()</a>, <a class="el" href="external-data-source-executor_8cc_source.html#l00086">CallJniMethod()</a>, <a class="el" href="jni-util_8h_source.html#l00231">impala::JniUtil::CallJniMethod()</a>, <a class="el" href="catalog_8cc_source.html#l00039">impala::Catalog::Catalog()</a>, <a class="el" href="jni-util_8cc_source.html#l00147">impala::JniUtil::Cleanup()</a>, <a class="el" href="hbase-table-writer_8cc_source.html#l00199">impala::HBaseTableWriter::CleanUpJni()</a>, <a class="el" href="hbase-table_8cc_source.html#l00047">impala::HBaseTable::Close()</a>, <a class="el" href="hbase-scan-node_8cc_source.html#l00277">impala::HBaseScanNode::Close()</a>, <a class="el" href="external-data-source-executor_8cc_source.html#l00111">impala::ExternalDataSourceExecutor::Close()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00232">impala::HiveUdfCall::Close()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00074">impala::HiveUdfCall::Evaluate()</a>, <a class="el" href="frontend_8cc_source.html#l00054">impala::Frontend::Frontend()</a>, <a class="el" href="expr-benchmark_8cc_source.html#l00056">Planner::GeneratePlan()</a>, <a class="el" href="catalog_8cc_source.html#l00087">impala::Catalog::GetAllCatalogObjects()</a>, <a class="el" href="catalog_8cc_source.html#l00079">impala::Catalog::GetCatalogVersion()</a>, <a class="el" href="hbase-scan-node_8cc_source.html#l00147">impala::HBaseScanNode::GetNext()</a>, <a class="el" href="hbase-table_8cc_source.html#l00132">impala::HBaseTable::GetResultScanner()</a>, <a class="el" href="hbase-table_8cc_source.html#l00068">impala::HBaseTable::Init()</a>, <a class="el" href="hbase-table-factory_8cc_source.html#l00032">impala::HBaseTableFactory::Init()</a>, <a class="el" href="external-data-source-executor_8cc_source.html#l00035">impala::ExternalDataSourceExecutor::Init()</a>, <a class="el" href="hbase-table-writer_8cc_source.html#l00052">impala::HBaseTableWriter::Init()</a>, <a class="el" href="hbase-table-scanner_8cc_source.html#l00113">impala::HBaseTableScanner::Init()</a>, <a class="el" href="jni-util_8cc_source.html#l00074">impala::JniUtil::Init()</a>, <a class="el" href="fe-support_8cc_source.html#l00346">impala::InitFeSupport()</a>, <a class="el" href="hbase-table_8cc_source.html#l00092">impala::HBaseTable::InitJNI()</a>, <a class="el" href="hbase-table-writer_8cc_source.html#l00089">impala::HBaseTableWriter::InitJNI()</a>, <a class="el" href="logging-support_8cc_source.html#l00073">impala::InitJvmLoggingSupport()</a>, <a class="el" href="hbase-scan-node_8cc_source.html#l00117">impala::HBaseScanNode::Open()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00176">impala::HiveUdfCall::Open()</a>, <a class="el" href="expr-benchmark_8cc_source.html#l00040">Planner::Planner()</a>, <a class="el" href="hbase-table_8cc_source.html#l00143">impala::HBaseTable::Put()</a>, <a class="el" href="request-pool-service_8cc_source.html#l00067">impala::RequestPoolService::RequestPoolService()</a>, <a class="el" href="frontend_8cc_source.html#l00228">impala::Frontend::SetCatalogInitialized()</a>, <a class="el" href="frontend_8cc_source.html#l00183">impala::Frontend::ValidateSettings()</a>, and <a class="el" href="hbase-table-factory_8cc_source.html#l00093">impala::HBaseTableFactory::~HBaseTableFactory()</a>.</p> |
| |
| </div> |
| </div> |
| </div><!-- contents --> |
| </div><!-- doc-content --> |
| <!-- start footer part --> |
| <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> |
| <ul> |
| <li class="navelem"><a class="el" href="dir_e5d120be6b5e8a44336cbfd013b25604.html">be</a></li><li class="navelem"><a class="el" href="dir_68cf7cafb51a962d5bc4848b83cab0de.html">src</a></li><li class="navelem"><a class="el" href="dir_6939c8639261a9303da2cde491b82898.html">util</a></li><li class="navelem"><a class="el" href="jni-util_8h.html">jni-util.h</a></li> |
| <li class="footer">Generated on Thu May 7 2015 16:10:41 for Impala by |
| <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |