blob: face1a14146a9cf41f88c5f35ffb7baef7ec689b [file]
<!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>Paimon-cpp: paimon::InputStream Class 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">Paimon-cpp
</div>
<div id="projectbrief">A high-performance C++ implementation of Apache Paimon</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="namespacepaimon.html">paimon</a></li><li class="navelem"><a class="el" href="classpaimon_1_1_input_stream.html">InputStream</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classpaimon_1_1_input_stream-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">paimon::InputStream Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Abstract class for input stream operations.
<a href="classpaimon_1_1_input_stream.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="file__system_8h_source.html">/home/runner/work/paimon-cpp/paimon-cpp/include/paimon/fs/file_system.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for paimon::InputStream:</div>
<div class="dyncontent">
<div class="center">
<img src="classpaimon_1_1_input_stream.png" usemap="#paimon::InputStream_map" alt=""/>
<map id="paimon::InputStream_map" name="paimon::InputStream_map">
<area href="classpaimon_1_1_stream.html" title="Abstract base class for all stream operations." alt="paimon::Stream" shape="rect" coords="96,0,278,24"/>
<area href="classpaimon_1_1_buffered_input_stream.html" title="A buffered input stream that wraps another InputStream to provide buffering capabilities." alt="paimon::BufferedInputStream" shape="rect" coords="0,112,182,136"/>
<area href="classpaimon_1_1_byte_array_input_stream.html" title="Input stream for memory buffer, inherits from InputStream." alt="paimon::ByteArrayInputStream" shape="rect" coords="192,112,374,136"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a105551df49ad793873a9b7383048fb8d" id="r_a105551df49ad793873a9b7383048fb8d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_input_stream.html#a105551df49ad793873a9b7383048fb8d">InputStream</a> ()=<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">default</a></td></tr>
<tr class="separator:a105551df49ad793873a9b7383048fb8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad5b06608c25f5dda325e5c32dcb6090" id="r_aad5b06608c25f5dda325e5c32dcb6090"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_input_stream.html#aad5b06608c25f5dda325e5c32dcb6090">~InputStream</a> () <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">override</a>=<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">default</a></td></tr>
<tr class="separator:aad5b06608c25f5dda325e5c32dcb6090"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2dc5b4b46ddcae0352124a6d0c9ac4c9" id="r_a2dc5b4b46ddcae0352124a6d0c9ac4c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_input_stream.html#a2dc5b4b46ddcae0352124a6d0c9ac4c9">Seek</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> offset, <a class="el" href="namespacepaimon.html#ac1eb532d87b4e6a9ea64431b61e115f9">SeekOrigin</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">origin</a>)=0</td></tr>
<tr class="memdesc:a2dc5b4b46ddcae0352124a6d0c9ac4c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Seek to a specified position in the input stream. <br /></td></tr>
<tr class="separator:a2dc5b4b46ddcae0352124a6d0c9ac4c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ac32eb3c03543f382ffeae736d47212" id="r_a3ac32eb3c03543f382ffeae736d47212"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_input_stream.html#a3ac32eb3c03543f382ffeae736d47212">GetPos</a> () <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> =0</td></tr>
<tr class="memdesc:a3ac32eb3c03543f382ffeae736d47212"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current position in the input stream. <br /></td></tr>
<tr class="separator:a3ac32eb3c03543f382ffeae736d47212"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06395a4740692d34586328f311c32c32" id="r_a06395a4740692d34586328f311c32c32"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_input_stream.html#a06395a4740692d34586328f311c32c32">Read</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">char</a> *buffer, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> size)=0</td></tr>
<tr class="memdesc:a06395a4740692d34586328f311c32c32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the current position in the stream. <br /></td></tr>
<tr class="separator:a06395a4740692d34586328f311c32c32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f5cbfe5d49bc705de945131fe1b60f1" id="r_a2f5cbfe5d49bc705de945131fe1b60f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_input_stream.html#a2f5cbfe5d49bc705de945131fe1b60f1">Read</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">char</a> *buffer, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> size, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> offset)=0</td></tr>
<tr class="memdesc:a2f5cbfe5d49bc705de945131fe1b60f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from given position in the stream. <br /></td></tr>
<tr class="separator:a2f5cbfe5d49bc705de945131fe1b60f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4942e6b879619ab97c8ed71d1288499" id="r_aa4942e6b879619ab97c8ed71d1288499"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_input_stream.html#aa4942e6b879619ab97c8ed71d1288499">ReadAsync</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">char</a> *buffer, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> size, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> offset, std::function&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a>(<a class="el" href="classpaimon_1_1_status.html">Status</a>)&gt; &amp;&amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">callback</a>)=0</td></tr>
<tr class="memdesc:aa4942e6b879619ab97c8ed71d1288499"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asynchronously read data from the input stream. <br /></td></tr>
<tr class="separator:aa4942e6b879619ab97c8ed71d1288499"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a689b6b28137753671f61da41a6ce636f" id="r_a689b6b28137753671f61da41a6ce636f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_input_stream.html#a689b6b28137753671f61da41a6ce636f">GetUri</a> () <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> =0</td></tr>
<tr class="memdesc:a689b6b28137753671f61da41a6ce636f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an identifier that uniquely identify the underlying content. <br /></td></tr>
<tr class="separator:a689b6b28137753671f61da41a6ce636f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73b121ffeedf93986dd3b6b95208e9f0" id="r_a73b121ffeedf93986dd3b6b95208e9f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_input_stream.html#a73b121ffeedf93986dd3b6b95208e9f0">Length</a> () <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> =0</td></tr>
<tr class="memdesc:a73b121ffeedf93986dd3b6b95208e9f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the total length of the file in bytes. <br /></td></tr>
<tr class="separator:a73b121ffeedf93986dd3b6b95208e9f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpaimon_1_1_stream"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpaimon_1_1_stream')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classpaimon_1_1_stream.html">paimon::Stream</a></td></tr>
<tr class="memitem:aff0ae0a9c78f8fb31da85ef1607748d9 inherit pub_methods_classpaimon_1_1_stream" id="r_aff0ae0a9c78f8fb31da85ef1607748d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_stream.html#aff0ae0a9c78f8fb31da85ef1607748d9">~Stream</a> ()=<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">default</a></td></tr>
<tr class="separator:aff0ae0a9c78f8fb31da85ef1607748d9 inherit pub_methods_classpaimon_1_1_stream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c12b3f1e8618ad95e980aa6ea79912a inherit pub_methods_classpaimon_1_1_stream" id="r_a1c12b3f1e8618ad95e980aa6ea79912a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_stream.html#a1c12b3f1e8618ad95e980aa6ea79912a">Close</a> ()=0</td></tr>
<tr class="memdesc:a1c12b3f1e8618ad95e980aa6ea79912a inherit pub_methods_classpaimon_1_1_stream"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the stream. <br /></td></tr>
<tr class="separator:a1c12b3f1e8618ad95e980aa6ea79912a inherit pub_methods_classpaimon_1_1_stream"><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>Abstract class for input stream operations. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a105551df49ad793873a9b7383048fb8d" name="a105551df49ad793873a9b7383048fb8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a105551df49ad793873a9b7383048fb8d">&#9670;&#160;</a></span>InputStream()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">paimon::InputStream::InputStream </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aad5b06608c25f5dda325e5c32dcb6090" name="aad5b06608c25f5dda325e5c32dcb6090"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad5b06608c25f5dda325e5c32dcb6090">&#9670;&#160;</a></span>~InputStream()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">paimon::InputStream::~InputStream </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a2dc5b4b46ddcae0352124a6d0c9ac4c9" name="a2dc5b4b46ddcae0352124a6d0c9ac4c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2dc5b4b46ddcae0352124a6d0c9ac4c9">&#9670;&#160;</a></span>Seek()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_status.html">Status</a> paimon::InputStream::Seek </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacepaimon.html#ac1eb532d87b4e6a9ea64431b61e115f9">SeekOrigin</a>&#160;</td>
<td class="paramname"><em>origin</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Seek to a specified position in the input stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">offset</td><td>The byte offset relative to the origin position. </td></tr>
<tr><td class="paramname">origin</td><td>The reference point for seeking (<code><a class="el" href="namespacepaimon.html#ac1eb532d87b4e6a9ea64431b61e115f9a770c25711516829cd50bfbca5f15867e" title="Seek from the beginning of the stream.">FS_SEEK_SET</a></code>, <code><a class="el" href="namespacepaimon.html#ac1eb532d87b4e6a9ea64431b61e115f9a5199153f908442fa3fcc3e97d03358b7" title="Seek from the current position in the stream.">FS_SEEK_CUR</a></code>, <code><a class="el" href="namespacepaimon.html#ac1eb532d87b4e6a9ea64431b61e115f9ac74982539e1b5314febf367c19aa7a27" title="Seek from the end of the stream.">FS_SEEK_END</a></code>). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classpaimon_1_1_status.html" title="Status outcome object (success or error)">Status</a> indicating success (OK) or failure with appropriate error information. </dd></dl>
<p>Implemented in <a class="el" href="classpaimon_1_1_buffered_input_stream.html#a632c6c39f06cbd9e9c22626ed776dcc9">paimon::BufferedInputStream</a>, and <a class="el" href="classpaimon_1_1_byte_array_input_stream.html#a126079b40c47569c924fd569547166f8">paimon::ByteArrayInputStream</a>.</p>
</div>
</div>
<a id="a3ac32eb3c03543f382ffeae736d47212" name="a3ac32eb3c03543f382ffeae736d47212"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ac32eb3c03543f382ffeae736d47212">&#9670;&#160;</a></span>GetPos()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> &gt; paimon::InputStream::GetPos </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current position in the input stream. </p>
<dl class="section return"><dt>Returns</dt><dd>Current position in the input stream. </dd>
<dd>
IOError returned if an I/O error occurred in the underlying stream. implementation while accessing the stream's position. </dd></dl>
<p>Implemented in <a class="el" href="classpaimon_1_1_buffered_input_stream.html#a150cbb2548d8ef77cfbada6e0038fbeb">paimon::BufferedInputStream</a>, and <a class="el" href="classpaimon_1_1_byte_array_input_stream.html#a6b6c3122b49d821ca0cee14ba2234e46">paimon::ByteArrayInputStream</a>.</p>
</div>
</div>
<a id="a06395a4740692d34586328f311c32c32" name="a06395a4740692d34586328f311c32c32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06395a4740692d34586328f311c32c32">&#9670;&#160;</a></span>Read() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> &gt; paimon::InputStream::Read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">char</a> *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a>&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read data from the current position in the stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>Pointer to the buffer where read data will be stored. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">size</td><td>Maximum number of bytes to read. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classpaimon_1_1_result.html" title="A Result&lt;T&gt; object holds either a value of type T or a Status object explaining why such a value is n...">Result</a> containing the actual number of bytes read on success, or an error status on failure. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>The stream position advances by the number of bytes actually read. </dd></dl>
<p>Implemented in <a class="el" href="classpaimon_1_1_buffered_input_stream.html#ad2c3e8c869cfeec5ff3ffb0b4e8a26d0">paimon::BufferedInputStream</a>, and <a class="el" href="classpaimon_1_1_byte_array_input_stream.html#a6ea19d743b67a3b711649515e2d7f719">paimon::ByteArrayInputStream</a>.</p>
</div>
</div>
<a id="a2f5cbfe5d49bc705de945131fe1b60f1" name="a2f5cbfe5d49bc705de945131fe1b60f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f5cbfe5d49bc705de945131fe1b60f1">&#9670;&#160;</a></span>Read() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> &gt; paimon::InputStream::Read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">char</a> *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a>&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a>&#160;</td>
<td class="paramname"><em>offset</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read data from given position in the stream. </p>
<p>Read with offset performs like <code><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">pread()</a></code> function, which will not change the position in the input stream.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The buffer to store the read content. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">size</td><td>The number of bytes to read. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">offset</td><td>The position in the stream to read from. </td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classpaimon_1_1_buffered_input_stream.html#a71707d01d3daf6c28fff1d0d7c25b896">paimon::BufferedInputStream</a>, and <a class="el" href="classpaimon_1_1_byte_array_input_stream.html#a82cc1f4c7b0adcef78a4712766a32a19">paimon::ByteArrayInputStream</a>.</p>
</div>
</div>
<a id="aa4942e6b879619ab97c8ed71d1288499" name="aa4942e6b879619ab97c8ed71d1288499"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4942e6b879619ab97c8ed71d1288499">&#9670;&#160;</a></span>ReadAsync()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> paimon::InputStream::ReadAsync </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">char</a> *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a>&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a>(<a class="el" href="classpaimon_1_1_status.html">Status</a>)&gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>callback</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Asynchronously read data from the input stream. </p>
<p>This function initiates an asynchronous read operation. The specified number of bytes will be read from the stream starting at the given offset and stored in the provided buffer. Once the read operation is complete, the provided callback function will be invoked with the status of the read operation.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The buffer to store the read content. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">size</td><td>The number of bytes to read. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">offset</td><td>The position in the stream to read from. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">callback</td><td>The callback function to be invoked upon completion of the read operation. The callback will receive a <a class="el" href="classpaimon_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating the success or failure of the read operation. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The caller must keep the input stream and buffer alive until the callback is invoked. </dd></dl>
<p>Implemented in <a class="el" href="classpaimon_1_1_buffered_input_stream.html#aab96f41e349fe480668396ce133aa753">paimon::BufferedInputStream</a>, and <a class="el" href="classpaimon_1_1_byte_array_input_stream.html#a0c377bd0b42af8db7c860dd590228b04">paimon::ByteArrayInputStream</a>.</p>
</div>
</div>
<a id="a689b6b28137753671f61da41a6ce636f" name="a689b6b28137753671f61da41a6ce636f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a689b6b28137753671f61da41a6ce636f">&#9670;&#160;</a></span>GetUri()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; std::string &gt; paimon::InputStream::GetUri </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get an identifier that uniquely identify the underlying content. </p>
<dl class="section return"><dt>Returns</dt><dd>An uri if the underlying content can be uniquely identified. </dd>
<dd>
Empty string if the underlying content cannot be uniquely identified. </dd></dl>
<p>Implemented in <a class="el" href="classpaimon_1_1_buffered_input_stream.html#a646ecb64407e882b5d448f37e27884f3">paimon::BufferedInputStream</a>, and <a class="el" href="classpaimon_1_1_byte_array_input_stream.html#ada7a88c0744aaa95255e4cc631ebb762">paimon::ByteArrayInputStream</a>.</p>
</div>
</div>
<a id="a73b121ffeedf93986dd3b6b95208e9f0" name="a73b121ffeedf93986dd3b6b95208e9f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a73b121ffeedf93986dd3b6b95208e9f0">&#9670;&#160;</a></span>Length()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int64_t</a> &gt; paimon::InputStream::Length </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the total length of the file in bytes. </p>
<p>Implemented in <a class="el" href="classpaimon_1_1_buffered_input_stream.html#ab48b9c9c18069b3b414a0cbb8f047178">paimon::BufferedInputStream</a>, and <a class="el" href="classpaimon_1_1_byte_array_input_stream.html#a62055ee2f7e93a36aa5cb5a7a4404579">paimon::ByteArrayInputStream</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>/home/runner/work/paimon-cpp/paimon-cpp/include/paimon/fs/<a class="el" href="file__system_8h_source.html">file_system.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>