<!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>iceberg-cpp: ArrowArrayStream Struct 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">iceberg-cpp
   </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><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structArrowArrayStream-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">ArrowArrayStream Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ae3a7b23fdfe446a3d095342c39d981c9" id="r_ae3a7b23fdfe446a3d095342c39d981c9"><td class="memItemLeft" align="right" valign="top"><a id="ae3a7b23fdfe446a3d095342c39d981c9" name="ae3a7b23fdfe446a3d095342c39d981c9"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>get_schema</b> )(struct <a class="el" href="structArrowArrayStream.html">ArrowArrayStream</a> *, struct <a class="el" href="structArrowSchema.html">ArrowSchema</a> *out)</td></tr>
<tr class="separator:ae3a7b23fdfe446a3d095342c39d981c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13f0d5da2fc463ce35463757ddb5d36e" id="r_a13f0d5da2fc463ce35463757ddb5d36e"><td class="memItemLeft" align="right" valign="top"><a id="a13f0d5da2fc463ce35463757ddb5d36e" name="a13f0d5da2fc463ce35463757ddb5d36e"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>get_next</b> )(struct <a class="el" href="structArrowArrayStream.html">ArrowArrayStream</a> *, struct <a class="el" href="structArrowArray.html">ArrowArray</a> *out)</td></tr>
<tr class="separator:a13f0d5da2fc463ce35463757ddb5d36e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d4ceb48d2af3583ce0a1002bd283b4f" id="r_a1d4ceb48d2af3583ce0a1002bd283b4f"><td class="memItemLeft" align="right" valign="top"><a id="a1d4ceb48d2af3583ce0a1002bd283b4f" name="a1d4ceb48d2af3583ce0a1002bd283b4f"></a>
const char *(*&#160;</td><td class="memItemRight" valign="bottom"><b>get_last_error</b> )(struct <a class="el" href="structArrowArrayStream.html">ArrowArrayStream</a> *)</td></tr>
<tr class="separator:a1d4ceb48d2af3583ce0a1002bd283b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fe27fba0eed01ed6f63591b22c6b859" id="r_a7fe27fba0eed01ed6f63591b22c6b859"><td class="memItemLeft" align="right" valign="top"><a id="a7fe27fba0eed01ed6f63591b22c6b859" name="a7fe27fba0eed01ed6f63591b22c6b859"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>release</b> )(struct <a class="el" href="structArrowArrayStream.html">ArrowArrayStream</a> *)</td></tr>
<tr class="separator:a7fe27fba0eed01ed6f63591b22c6b859"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35d4fb572d51736c6c447f64406b50d9" id="r_a35d4fb572d51736c6c447f64406b50d9"><td class="memItemLeft" align="right" valign="top"><a id="a35d4fb572d51736c6c447f64406b50d9" name="a35d4fb572d51736c6c447f64406b50d9"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>private_data</b></td></tr>
<tr class="separator:a35d4fb572d51736c6c447f64406b50d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>iceberg/<a class="el" href="arrow__c__data_8h_source.html">arrow_c_data.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>
