Metahuman_DNA_Calibration/docs/doxygen/build/html/classtrio_1_1FileStreamImpl.html
2022-11-29 14:58:38 +01:00

1035 lines
110 KiB
HTML

<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DNA Calib: trio::FileStreamImpl 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">DNA Calib<span id="projectnumber">&#160;1.1</span>
</div>
<div id="projectbrief">Project brief</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacetrio.html">trio</a></li><li class="navelem"><a class="el" href="classtrio_1_1FileStreamImpl.html">FileStreamImpl</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classtrio_1_1FileStreamImpl-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">trio::FileStreamImpl Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="FileStreamImpl_8h_source.html">FileStreamImpl.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for trio::FileStreamImpl:</div>
<div class="dyncontent">
<div class="center"><img src="classtrio_1_1FileStreamImpl__inherit__graph.png" border="0" usemap="#atrio_1_1FileStreamImpl_inherit__map" alt="Inheritance graph"/></div>
<map name="atrio_1_1FileStreamImpl_inherit__map" id="atrio_1_1FileStreamImpl_inherit__map">
<area shape="rect" title=" " alt="" coords="299,712,461,1024"/>
<area shape="rect" href="classtrio_1_1FileStream.html" title="Standard file stream." alt="" coords="323,484,437,664"/>
<area shape="rect" href="classtrio_1_1BoundedIOStream.html" title=" " alt="" coords="302,300,458,436"/>
<area shape="rect" href="classtrio_1_1Controllable.html" title=" " alt="" coords="63,160,180,237"/>
<area shape="rect" href="classtrio_1_1Openable.html" title=" " alt="" coords="5,5,109,97"/>
<area shape="rect" href="classtrio_1_1Closeable.html" title=" " alt="" coords="133,5,240,97"/>
<area shape="rect" href="classtrio_1_1Readable.html" title=" " alt="" coords="205,145,307,252"/>
<area shape="rect" href="classtrio_1_1Writable.html" title=" " alt="" coords="331,145,429,252"/>
<area shape="rect" href="classtrio_1_1Seekable.html" title=" " alt="" coords="453,145,555,252"/>
<area shape="rect" href="classtrio_1_1Bounded.html" title=" " alt="" coords="579,153,679,245"/>
</map>
</div>
<div class="dynheader">
Collaboration diagram for trio::FileStreamImpl:</div>
<div class="dyncontent">
<div class="center"><img src="classtrio_1_1FileStreamImpl__coll__graph.png" border="0" usemap="#atrio_1_1FileStreamImpl_coll__map" alt="Collaboration graph"/></div>
<map name="atrio_1_1FileStreamImpl_coll__map" id="atrio_1_1FileStreamImpl_coll__map">
<area shape="rect" title=" " alt="" coords="793,1084,956,1352"/>
<area shape="rect" href="classtrio_1_1FileStream.html" title="Standard file stream." alt="" coords="525,841,638,1021"/>
<area shape="rect" href="classtrio_1_1BoundedIOStream.html" title=" " alt="" coords="426,665,582,742"/>
<area shape="rect" href="classtrio_1_1Controllable.html" title=" " alt="" coords="63,415,180,492"/>
<area shape="rect" href="classtrio_1_1Openable.html" title=" " alt="" coords="5,259,109,351"/>
<area shape="rect" href="classtrio_1_1Closeable.html" title=" " alt="" coords="133,259,240,351"/>
<area shape="rect" href="classtrio_1_1Readable.html" title=" " alt="" coords="205,400,307,507"/>
<area shape="rect" href="classtrio_1_1Writable.html" title=" " alt="" coords="331,400,429,507"/>
<area shape="rect" href="classtrio_1_1Seekable.html" title=" " alt="" coords="453,400,555,507"/>
<area shape="rect" href="classtrio_1_1Bounded.html" title=" " alt="" coords="579,407,679,499"/>
<area shape="rect" href="structsc_1_1StatusCode.html" title=" " alt="" coords="704,407,816,499"/>
<area shape="rect" title=" " alt="" coords="719,893,809,970"/>
<area shape="rect" title=" " alt="" coords="781,657,910,749"/>
<area shape="rect" title=" " alt="" coords="840,407,976,499"/>
<area shape="rect" title=" " alt="" coords="765,259,894,351"/>
<area shape="rect" title=" " alt="" coords="829,132,984,209"/>
<area shape="rect" title=" " alt="" coords="919,259,1052,351"/>
<area shape="rect" title=" " alt="" coords="857,5,957,83"/>
<area shape="rect" href="classpma_1_1MemoryResource.html" title="MemoryResource is an abstract class that allows the implementation of polymorphic allocators." alt="" coords="833,878,991,985"/>
<area shape="rect" href="classtrio_1_1StreamStatus.html" title=" " alt="" coords="1015,893,1143,970"/>
<area shape="rect" href="classsc_1_1StatusProvider.html" title=" " alt="" coords="1015,628,1143,779"/>
</map>
</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:ad37cbd195d33a5f2cd40f035ab3d3d47"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#ad37cbd195d33a5f2cd40f035ab3d3d47">FileStreamImpl</a> (const char *path_, <a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116">AccessMode</a> accessMode_, <a class="el" href="namespacetrio.html#a6020d2cf223a27e6f0c208754c379dce">OpenMode</a> openMode_, <a class="el" href="classpma_1_1MemoryResource.html">MemoryResource</a> *memRes_)</td></tr>
<tr class="separator:ad37cbd195d33a5f2cd40f035ab3d3d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5145015e4f7c55662aa7a248dc29c0d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#af5145015e4f7c55662aa7a248dc29c0d">open</a> () override</td></tr>
<tr class="memdesc:af5145015e4f7c55662aa7a248dc29c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open access to the stream. <a href="classtrio_1_1FileStreamImpl.html#af5145015e4f7c55662aa7a248dc29c0d">More...</a><br /></td></tr>
<tr class="separator:af5145015e4f7c55662aa7a248dc29c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42f32344da4b9686abee8a71d4730ccb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a42f32344da4b9686abee8a71d4730ccb">close</a> () override</td></tr>
<tr class="memdesc:a42f32344da4b9686abee8a71d4730ccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close access to the stream. <a href="classtrio_1_1FileStreamImpl.html#a42f32344da4b9686abee8a71d4730ccb">More...</a><br /></td></tr>
<tr class="separator:a42f32344da4b9686abee8a71d4730ccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35066ab7b50de21eeca6a592c11a4cd1"><td class="memItemLeft" align="right" valign="top">std::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a35066ab7b50de21eeca6a592c11a4cd1">tell</a> () override</td></tr>
<tr class="memdesc:a35066ab7b50de21eeca6a592c11a4cd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current position in the stream. <a href="classtrio_1_1FileStreamImpl.html#a35066ab7b50de21eeca6a592c11a4cd1">More...</a><br /></td></tr>
<tr class="separator:a35066ab7b50de21eeca6a592c11a4cd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f2a2ac467cec1b636300d6ed9ab9f48"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a6f2a2ac467cec1b636300d6ed9ab9f48">seek</a> (std::uint64_t position) override</td></tr>
<tr class="memdesc:a6f2a2ac467cec1b636300d6ed9ab9f48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the current position in the stream. <a href="classtrio_1_1FileStreamImpl.html#a6f2a2ac467cec1b636300d6ed9ab9f48">More...</a><br /></td></tr>
<tr class="separator:a6f2a2ac467cec1b636300d6ed9ab9f48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a886f87940390609350ebac7d3e34e225"><td class="memItemLeft" align="right" valign="top">std::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a> () override</td></tr>
<tr class="memdesc:a886f87940390609350ebac7d3e34e225"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain size of stream in bytes. <a href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">More...</a><br /></td></tr>
<tr class="separator:a886f87940390609350ebac7d3e34e225"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf0a546ad27b383f94b94e58a9210845"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#abf0a546ad27b383f94b94e58a9210845">read</a> (char *destination, std::size_t <a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>) override</td></tr>
<tr class="memdesc:abf0a546ad27b383f94b94e58a9210845"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read bytes from stream into the given buffer. <a href="classtrio_1_1FileStreamImpl.html#abf0a546ad27b383f94b94e58a9210845">More...</a><br /></td></tr>
<tr class="separator:abf0a546ad27b383f94b94e58a9210845"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ea1c44150f144f5b632d4c32f62f08c"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a6ea1c44150f144f5b632d4c32f62f08c">read</a> (<a class="el" href="classtrio_1_1Writable.html">Writable</a> *destination, std::size_t <a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>) override</td></tr>
<tr class="memdesc:a6ea1c44150f144f5b632d4c32f62f08c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read bytes from this stream into the given stream. <a href="classtrio_1_1FileStreamImpl.html#a6ea1c44150f144f5b632d4c32f62f08c">More...</a><br /></td></tr>
<tr class="separator:a6ea1c44150f144f5b632d4c32f62f08c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21553243d67bcf7b017a24d71820c9fb"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a21553243d67bcf7b017a24d71820c9fb">write</a> (const char *source, std::size_t <a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>) override</td></tr>
<tr class="memdesc:a21553243d67bcf7b017a24d71820c9fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes bytes from the given buffer to the stream. <a href="classtrio_1_1FileStreamImpl.html#a21553243d67bcf7b017a24d71820c9fb">More...</a><br /></td></tr>
<tr class="separator:a21553243d67bcf7b017a24d71820c9fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a876dfedc5ad235e338e53b6ab80d087d"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a876dfedc5ad235e338e53b6ab80d087d">write</a> (<a class="el" href="classtrio_1_1Readable.html">Readable</a> *source, std::size_t <a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>) override</td></tr>
<tr class="memdesc:a876dfedc5ad235e338e53b6ab80d087d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes bytes from the given stream to this stream. <a href="classtrio_1_1FileStreamImpl.html#a876dfedc5ad235e338e53b6ab80d087d">More...</a><br /></td></tr>
<tr class="separator:a876dfedc5ad235e338e53b6ab80d087d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e2cde283da92d981e698b4bd362ddea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpma_1_1MemoryResource.html">MemoryResource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a3e2cde283da92d981e698b4bd362ddea">getMemoryResource</a> ()</td></tr>
<tr class="separator:a3e2cde283da92d981e698b4bd362ddea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classtrio_1_1FileStream"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtrio_1_1FileStream')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtrio_1_1FileStream.html">trio::FileStream</a></td></tr>
<tr class="memitem:a75e6821531456b6f0238abb2d987a640 inherit pub_methods_classtrio_1_1FileStream"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStream.html#a75e6821531456b6f0238abb2d987a640">FileStream</a> ()=default</td></tr>
<tr class="separator:a75e6821531456b6f0238abb2d987a640 inherit pub_methods_classtrio_1_1FileStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65809a260adc501a052a7d7476ad1553 inherit pub_methods_classtrio_1_1FileStream"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStream.html#a65809a260adc501a052a7d7476ad1553">~FileStream</a> () override</td></tr>
<tr class="separator:a65809a260adc501a052a7d7476ad1553 inherit pub_methods_classtrio_1_1FileStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d1c14f8be2b90aa32ad07a7605505a4 inherit pub_methods_classtrio_1_1FileStream"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStream.html#a1d1c14f8be2b90aa32ad07a7605505a4">FileStream</a> (const <a class="el" href="classtrio_1_1FileStream.html">FileStream</a> &amp;)=delete</td></tr>
<tr class="separator:a1d1c14f8be2b90aa32ad07a7605505a4 inherit pub_methods_classtrio_1_1FileStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f1699314e2e469ae78a1a2b5a635cb5 inherit pub_methods_classtrio_1_1FileStream"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtrio_1_1FileStream.html">FileStream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStream.html#a7f1699314e2e469ae78a1a2b5a635cb5">operator=</a> (const <a class="el" href="classtrio_1_1FileStream.html">FileStream</a> &amp;)=delete</td></tr>
<tr class="separator:a7f1699314e2e469ae78a1a2b5a635cb5 inherit pub_methods_classtrio_1_1FileStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6eea6f8958a7554ec6c0b122b7786abe inherit pub_methods_classtrio_1_1FileStream"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStream.html#a6eea6f8958a7554ec6c0b122b7786abe">FileStream</a> (<a class="el" href="classtrio_1_1FileStream.html">FileStream</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a6eea6f8958a7554ec6c0b122b7786abe inherit pub_methods_classtrio_1_1FileStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a897e527409bd3a3ae8e7ef4a7dc3e5d2 inherit pub_methods_classtrio_1_1FileStream"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtrio_1_1FileStream.html">FileStream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStream.html#a897e527409bd3a3ae8e7ef4a7dc3e5d2">operator=</a> (<a class="el" href="classtrio_1_1FileStream.html">FileStream</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a897e527409bd3a3ae8e7ef4a7dc3e5d2 inherit pub_methods_classtrio_1_1FileStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classtrio_1_1BoundedIOStream"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtrio_1_1BoundedIOStream')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtrio_1_1BoundedIOStream.html">trio::BoundedIOStream</a></td></tr>
<tr class="memitem:a68637af962300a39b1048d53d50d1f7c inherit pub_methods_classtrio_1_1BoundedIOStream"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1BoundedIOStream.html#a68637af962300a39b1048d53d50d1f7c">~BoundedIOStream</a> ()</td></tr>
<tr class="separator:a68637af962300a39b1048d53d50d1f7c inherit pub_methods_classtrio_1_1BoundedIOStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addfdc5360983a446fe200410a3eaef8f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Openable.html#addfdc5360983a446fe200410a3eaef8f">open</a> ()=0</td></tr>
<tr class="memdesc:addfdc5360983a446fe200410a3eaef8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open access to the stream. <a href="classtrio_1_1Openable.html#addfdc5360983a446fe200410a3eaef8f">More...</a><br /></td></tr>
<tr class="separator:addfdc5360983a446fe200410a3eaef8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2e99d3bd99a39cf528ba29b1ba0baf1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Closeable.html#ac2e99d3bd99a39cf528ba29b1ba0baf1">close</a> ()=0</td></tr>
<tr class="memdesc:ac2e99d3bd99a39cf528ba29b1ba0baf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close access to the stream. <a href="classtrio_1_1Closeable.html#ac2e99d3bd99a39cf528ba29b1ba0baf1">More...</a><br /></td></tr>
<tr class="separator:ac2e99d3bd99a39cf528ba29b1ba0baf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a134ad61b17c812f7aa2d912fc96d36f9"><td class="memItemLeft" align="right" valign="top">virtual std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Readable.html#a134ad61b17c812f7aa2d912fc96d36f9">read</a> (char *destination, std::size_t size)=0</td></tr>
<tr class="memdesc:a134ad61b17c812f7aa2d912fc96d36f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read bytes from stream into the given buffer. <a href="classtrio_1_1Readable.html#a134ad61b17c812f7aa2d912fc96d36f9">More...</a><br /></td></tr>
<tr class="separator:a134ad61b17c812f7aa2d912fc96d36f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7272a2547bb33c20c9b37493491c6c1"><td class="memItemLeft" align="right" valign="top">virtual std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Readable.html#ae7272a2547bb33c20c9b37493491c6c1">read</a> (<a class="el" href="classtrio_1_1Writable.html">Writable</a> *destination, std::size_t size)=0</td></tr>
<tr class="memdesc:ae7272a2547bb33c20c9b37493491c6c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read bytes from this stream into the given stream. <a href="classtrio_1_1Readable.html#ae7272a2547bb33c20c9b37493491c6c1">More...</a><br /></td></tr>
<tr class="separator:ae7272a2547bb33c20c9b37493491c6c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a463e8d3e652fc4c3ce971d3fc2eaec7e"><td class="memItemLeft" align="right" valign="top">virtual std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Writable.html#a463e8d3e652fc4c3ce971d3fc2eaec7e">write</a> (const char *source, std::size_t size)=0</td></tr>
<tr class="memdesc:a463e8d3e652fc4c3ce971d3fc2eaec7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes bytes from the given buffer to the stream. <a href="classtrio_1_1Writable.html#a463e8d3e652fc4c3ce971d3fc2eaec7e">More...</a><br /></td></tr>
<tr class="separator:a463e8d3e652fc4c3ce971d3fc2eaec7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c23fed723a8afefd8ecfd78a48d18dc"><td class="memItemLeft" align="right" valign="top">virtual std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Writable.html#a7c23fed723a8afefd8ecfd78a48d18dc">write</a> (<a class="el" href="classtrio_1_1Readable.html">Readable</a> *source, std::size_t size)=0</td></tr>
<tr class="memdesc:a7c23fed723a8afefd8ecfd78a48d18dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes bytes from the given stream to this stream. <a href="classtrio_1_1Writable.html#a7c23fed723a8afefd8ecfd78a48d18dc">More...</a><br /></td></tr>
<tr class="separator:a7c23fed723a8afefd8ecfd78a48d18dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5071bbc6e4760fdfb3d5c0d83117b85"><td class="memItemLeft" align="right" valign="top">virtual std::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Seekable.html#af5071bbc6e4760fdfb3d5c0d83117b85">tell</a> ()=0</td></tr>
<tr class="memdesc:af5071bbc6e4760fdfb3d5c0d83117b85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current position in the stream. <a href="classtrio_1_1Seekable.html#af5071bbc6e4760fdfb3d5c0d83117b85">More...</a><br /></td></tr>
<tr class="separator:af5071bbc6e4760fdfb3d5c0d83117b85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea11c922f49ddf61a0f30f7ad41dde2c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Seekable.html#aea11c922f49ddf61a0f30f7ad41dde2c">seek</a> (std::uint64_t position)=0</td></tr>
<tr class="memdesc:aea11c922f49ddf61a0f30f7ad41dde2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the current position in the stream. <a href="classtrio_1_1Seekable.html#aea11c922f49ddf61a0f30f7ad41dde2c">More...</a><br /></td></tr>
<tr class="separator:aea11c922f49ddf61a0f30f7ad41dde2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af35254c3e5f016117885d7234c80d9a7"><td class="memItemLeft" align="right" valign="top">virtual std::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Bounded.html#af35254c3e5f016117885d7234c80d9a7">size</a> ()=0</td></tr>
<tr class="memdesc:af35254c3e5f016117885d7234c80d9a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain size of stream in bytes. <a href="classtrio_1_1Bounded.html#af35254c3e5f016117885d7234c80d9a7">More...</a><br /></td></tr>
<tr class="separator:af35254c3e5f016117885d7234c80d9a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a1eae9ba35342b17b9653961060afcd3f"><td class="memItemLeft" align="right" valign="top">std::fstream&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a></td></tr>
<tr class="separator:a1eae9ba35342b17b9653961060afcd3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d550c09b548f308da42424c369b477d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacetrio.html#add2affebde5ca4fa798a3855cadd339b">NativeString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a></td></tr>
<tr class="separator:a0d550c09b548f308da42424c369b477d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af591e812e9dad5600be7c132c9f7abeb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116">AccessMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a></td></tr>
<tr class="separator:af591e812e9dad5600be7c132c9f7abeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d005b224c0cbed66889a4f4f8c69902"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacetrio.html#a6020d2cf223a27e6f0c208754c379dce">OpenMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a3d005b224c0cbed66889a4f4f8c69902">fileOpenMode</a></td></tr>
<tr class="separator:a3d005b224c0cbed66889a4f4f8c69902"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80e65d12e393b02062f876f2f203841f"><td class="memItemLeft" align="right" valign="top">std::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a></td></tr>
<tr class="separator:a80e65d12e393b02062f876f2f203841f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18054e12a142178b3e27568e1423e29e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpma_1_1MemoryResource.html">MemoryResource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#a18054e12a142178b3e27568e1423e29e">memRes</a></td></tr>
<tr class="separator:a18054e12a142178b3e27568e1423e29e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef2982a7c16c85b76f49b5b6daabebae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtrio_1_1StreamStatus.html">StreamStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a></td></tr>
<tr class="separator:aef2982a7c16c85b76f49b5b6daabebae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classtrio_1_1BoundedIOStream"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classtrio_1_1BoundedIOStream')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classtrio_1_1BoundedIOStream.html">trio::BoundedIOStream</a></td></tr>
<tr class="memitem:ab68bb604ec68fe3571cd81789039d93f inherit pub_types_classtrio_1_1BoundedIOStream"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1BoundedIOStream.html#ab68bb604ec68fe3571cd81789039d93f">AccessMode</a> = <a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116">trio::AccessMode</a></td></tr>
<tr class="separator:ab68bb604ec68fe3571cd81789039d93f inherit pub_types_classtrio_1_1BoundedIOStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7def2dc131ce92fade579b73695c972 inherit pub_types_classtrio_1_1BoundedIOStream"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1BoundedIOStream.html#ac7def2dc131ce92fade579b73695c972">OpenMode</a> = <a class="el" href="namespacetrio.html#a6020d2cf223a27e6f0c208754c379dce">trio::OpenMode</a></td></tr>
<tr class="separator:ac7def2dc131ce92fade579b73695c972 inherit pub_types_classtrio_1_1BoundedIOStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_methods_classtrio_1_1FileStream"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classtrio_1_1FileStream')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classtrio_1_1FileStream.html">trio::FileStream</a></td></tr>
<tr class="memitem:a0d6564c770dac2d589f9300e50d6a820 inherit pub_static_methods_classtrio_1_1FileStream"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtrio_1_1FileStream.html">FileStream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStream.html#a0d6564c770dac2d589f9300e50d6a820">create</a> (const char *path, <a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116">AccessMode</a> accessMode, <a class="el" href="namespacetrio.html#a6020d2cf223a27e6f0c208754c379dce">OpenMode</a> openMode, <a class="el" href="classpma_1_1MemoryResource.html">MemoryResource</a> *memRes=nullptr)</td></tr>
<tr class="memdesc:a0d6564c770dac2d589f9300e50d6a820 inherit pub_static_methods_classtrio_1_1FileStream"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory method for creation of a <a class="el" href="classtrio_1_1FileStream.html" title="Standard file stream.">FileStream</a> instance. <a href="classtrio_1_1FileStream.html#a0d6564c770dac2d589f9300e50d6a820">More...</a><br /></td></tr>
<tr class="separator:a0d6564c770dac2d589f9300e50d6a820 inherit pub_static_methods_classtrio_1_1FileStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af77548a526355e8b3d8d890dd9a18789 inherit pub_static_methods_classtrio_1_1FileStream"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1FileStream.html#af77548a526355e8b3d8d890dd9a18789">destroy</a> (<a class="el" href="classtrio_1_1FileStream.html">FileStream</a> *instance)</td></tr>
<tr class="memdesc:af77548a526355e8b3d8d890dd9a18789 inherit pub_static_methods_classtrio_1_1FileStream"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for freeing a <a class="el" href="classtrio_1_1FileStream.html" title="Standard file stream.">FileStream</a> instance. <a href="classtrio_1_1FileStream.html#af77548a526355e8b3d8d890dd9a18789">More...</a><br /></td></tr>
<tr class="separator:af77548a526355e8b3d8d890dd9a18789 inherit pub_static_methods_classtrio_1_1FileStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classtrio_1_1BoundedIOStream"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classtrio_1_1BoundedIOStream')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classtrio_1_1BoundedIOStream.html">trio::BoundedIOStream</a></td></tr>
<tr class="memitem:a0298a701e6508d21a06a7a12beea4ba2 inherit pub_static_attribs_classtrio_1_1BoundedIOStream"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structsc_1_1StatusCode.html">sc::StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1BoundedIOStream.html#a0298a701e6508d21a06a7a12beea4ba2">OpenError</a> {100, &quot;Error opening file&quot;}</td></tr>
<tr class="separator:a0298a701e6508d21a06a7a12beea4ba2 inherit pub_static_attribs_classtrio_1_1BoundedIOStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bca141b1213e5f752a4fde5679708bd inherit pub_static_attribs_classtrio_1_1BoundedIOStream"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structsc_1_1StatusCode.html">sc::StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1BoundedIOStream.html#a5bca141b1213e5f752a4fde5679708bd">ReadError</a> {101, &quot;Error reading file&quot;}</td></tr>
<tr class="separator:a5bca141b1213e5f752a4fde5679708bd inherit pub_static_attribs_classtrio_1_1BoundedIOStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaa88ae7c4bbeda319710963adc81ce8 inherit pub_static_attribs_classtrio_1_1BoundedIOStream"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structsc_1_1StatusCode.html">sc::StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1BoundedIOStream.html#adaa88ae7c4bbeda319710963adc81ce8">WriteError</a> {102, &quot;Error writing file&quot;}</td></tr>
<tr class="separator:adaa88ae7c4bbeda319710963adc81ce8 inherit pub_static_attribs_classtrio_1_1BoundedIOStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20f4c9068fa8d05f6f6135c367fe4d24 inherit pub_static_attribs_classtrio_1_1BoundedIOStream"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structsc_1_1StatusCode.html">sc::StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1BoundedIOStream.html#a20f4c9068fa8d05f6f6135c367fe4d24">AlreadyOpenError</a> {103, &quot;File already <a class="el" href="classtrio_1_1Openable.html#addfdc5360983a446fe200410a3eaef8f">open</a>&quot;}</td></tr>
<tr class="separator:a20f4c9068fa8d05f6f6135c367fe4d24 inherit pub_static_attribs_classtrio_1_1BoundedIOStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbe507ff2b39fc2ccb8550dfc27e0ce9 inherit pub_static_attribs_classtrio_1_1BoundedIOStream"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structsc_1_1StatusCode.html">sc::StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1BoundedIOStream.html#afbe507ff2b39fc2ccb8550dfc27e0ce9">SeekError</a> {104, &quot;Error seeking file&quot;}</td></tr>
<tr class="separator:afbe507ff2b39fc2ccb8550dfc27e0ce9 inherit pub_static_attribs_classtrio_1_1BoundedIOStream"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classtrio_1_1Controllable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtrio_1_1Controllable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtrio_1_1Controllable.html">trio::Controllable</a></td></tr>
<tr class="memitem:a66a85a74eb5921ba18e7d50f16bb3d14 inherit pro_methods_classtrio_1_1Controllable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Controllable.html#a66a85a74eb5921ba18e7d50f16bb3d14">~Controllable</a> ()</td></tr>
<tr class="separator:a66a85a74eb5921ba18e7d50f16bb3d14 inherit pro_methods_classtrio_1_1Controllable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classtrio_1_1Openable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtrio_1_1Openable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtrio_1_1Openable.html">trio::Openable</a></td></tr>
<tr class="memitem:a24782209f544f766b4b953dae7b1dbd4 inherit pro_methods_classtrio_1_1Openable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Openable.html#a24782209f544f766b4b953dae7b1dbd4">~Openable</a> ()</td></tr>
<tr class="separator:a24782209f544f766b4b953dae7b1dbd4 inherit pro_methods_classtrio_1_1Openable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classtrio_1_1Closeable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtrio_1_1Closeable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtrio_1_1Closeable.html">trio::Closeable</a></td></tr>
<tr class="memitem:aebe07ebcbb431ecdd71b575993038097 inherit pro_methods_classtrio_1_1Closeable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Closeable.html#aebe07ebcbb431ecdd71b575993038097">~Closeable</a> ()</td></tr>
<tr class="separator:aebe07ebcbb431ecdd71b575993038097 inherit pro_methods_classtrio_1_1Closeable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classtrio_1_1Readable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtrio_1_1Readable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtrio_1_1Readable.html">trio::Readable</a></td></tr>
<tr class="memitem:a49421a76a150a17207dc2d896d73d7a7 inherit pro_methods_classtrio_1_1Readable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Readable.html#a49421a76a150a17207dc2d896d73d7a7">~Readable</a> ()</td></tr>
<tr class="separator:a49421a76a150a17207dc2d896d73d7a7 inherit pro_methods_classtrio_1_1Readable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classtrio_1_1Writable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtrio_1_1Writable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtrio_1_1Writable.html">trio::Writable</a></td></tr>
<tr class="memitem:aadd7ce033795eb76f383ae341a17aa21 inherit pro_methods_classtrio_1_1Writable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Writable.html#aadd7ce033795eb76f383ae341a17aa21">~Writable</a> ()</td></tr>
<tr class="separator:aadd7ce033795eb76f383ae341a17aa21 inherit pro_methods_classtrio_1_1Writable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classtrio_1_1Seekable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtrio_1_1Seekable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtrio_1_1Seekable.html">trio::Seekable</a></td></tr>
<tr class="memitem:abbd824465ebc3080b3c1d84f3266bb2d inherit pro_methods_classtrio_1_1Seekable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Seekable.html#abbd824465ebc3080b3c1d84f3266bb2d">~Seekable</a> ()</td></tr>
<tr class="separator:abbd824465ebc3080b3c1d84f3266bb2d inherit pro_methods_classtrio_1_1Seekable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classtrio_1_1Bounded"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtrio_1_1Bounded')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtrio_1_1Bounded.html">trio::Bounded</a></td></tr>
<tr class="memitem:a7ea3df0afdd14896c30ae7502dffe2ff inherit pro_methods_classtrio_1_1Bounded"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtrio_1_1Bounded.html#a7ea3df0afdd14896c30ae7502dffe2ff">~Bounded</a> ()</td></tr>
<tr class="separator:a7ea3df0afdd14896c30ae7502dffe2ff inherit pro_methods_classtrio_1_1Bounded"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad37cbd195d33a5f2cd40f035ab3d3d47" name="ad37cbd195d33a5f2cd40f035ab3d3d47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad37cbd195d33a5f2cd40f035ab3d3d47">&#9670;&nbsp;</a></span>FileStreamImpl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">trio::FileStreamImpl::FileStreamImpl </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>path_</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116">AccessMode</a>&#160;</td>
<td class="paramname"><em>accessMode_</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacetrio.html#a6020d2cf223a27e6f0c208754c379dce">OpenMode</a>&#160;</td>
<td class="paramname"><em>openMode_</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classpma_1_1MemoryResource.html">MemoryResource</a> *&#160;</td>
<td class="paramname"><em>memRes_</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><span class="lineno"> 61</span> :</div>
<div class="line"><span class="lineno"> 62</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>{NativeStringConverter::from(path_, memRes_)},</div>
<div class="line"><span class="lineno"> 63</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>{accessMode_},</div>
<div class="line"><span class="lineno"> 64</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a3d005b224c0cbed66889a4f4f8c69902">fileOpenMode</a>{openMode_},</div>
<div class="line"><span class="lineno"> 65</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a>{<a class="code hl_function" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#ac7acb4ac61162c7fdb3f9392c49149ef">getFileSizeStd</a>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str())},</div>
<div class="line"><span class="lineno"> 66</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a18054e12a142178b3e27568e1423e29e">memRes</a>{memRes_} {</div>
<div class="line"><span class="lineno"> 67</span>}</div>
<div class="ttc" id="aclasstrio_1_1FileStreamImpl_html_a0d550c09b548f308da42424c369b477d"><div class="ttname"><a href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">trio::FileStreamImpl::filePath</a></div><div class="ttdeci">NativeString filePath</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.h:44</div></div>
<div class="ttc" id="aclasstrio_1_1FileStreamImpl_html_a18054e12a142178b3e27568e1423e29e"><div class="ttname"><a href="classtrio_1_1FileStreamImpl.html#a18054e12a142178b3e27568e1423e29e">trio::FileStreamImpl::memRes</a></div><div class="ttdeci">MemoryResource * memRes</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.h:48</div></div>
<div class="ttc" id="aclasstrio_1_1FileStreamImpl_html_a3d005b224c0cbed66889a4f4f8c69902"><div class="ttname"><a href="classtrio_1_1FileStreamImpl.html#a3d005b224c0cbed66889a4f4f8c69902">trio::FileStreamImpl::fileOpenMode</a></div><div class="ttdeci">OpenMode fileOpenMode</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.h:46</div></div>
<div class="ttc" id="aclasstrio_1_1FileStreamImpl_html_a80e65d12e393b02062f876f2f203841f"><div class="ttname"><a href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">trio::FileStreamImpl::fileSize</a></div><div class="ttdeci">std::uint64_t fileSize</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.h:47</div></div>
<div class="ttc" id="aclasstrio_1_1FileStreamImpl_html_af591e812e9dad5600be7c132c9f7abeb"><div class="ttname"><a href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">trio::FileStreamImpl::fileAccessMode</a></div><div class="ttdeci">AccessMode fileAccessMode</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.h:45</div></div>
<div class="ttc" id="anamespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03_html_ac7acb4ac61162c7fdb3f9392c49149ef"><div class="ttname"><a href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#ac7acb4ac61162c7fdb3f9392c49149ef">trio::anonymous_namespace{FileStreamImpl.cpp}::getFileSizeStd</a></div><div class="ttdeci">std::uint64_t getFileSizeStd(const NativeCharacter *path)</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.cpp:31</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a42f32344da4b9686abee8a71d4730ccb" name="a42f32344da4b9686abee8a71d4730ccb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42f32344da4b9686abee8a71d4730ccb">&#9670;&nbsp;</a></span>close()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void trio::FileStreamImpl::close </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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Close access to the stream. </p>
<p>Implements <a class="el" href="classtrio_1_1Closeable.html#ac2e99d3bd99a39cf528ba29b1ba0baf1">trio::Closeable</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 95</span> {</div>
<div class="line"><span class="lineno"> 96</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.close();</div>
<div class="line"><span class="lineno"> 97</span>}</div>
<div class="ttc" id="aclasstrio_1_1FileStreamImpl_html_a1eae9ba35342b17b9653961060afcd3f"><div class="ttname"><a href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">trio::FileStreamImpl::file</a></div><div class="ttdeci">std::fstream file</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.h:43</div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.</p>
</div>
</div>
<a id="a3e2cde283da92d981e698b4bd362ddea" name="a3e2cde283da92d981e698b4bd362ddea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e2cde283da92d981e698b4bd362ddea">&#9670;&nbsp;</a></span>getMemoryResource()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpma_1_1MemoryResource.html">MemoryResource</a> * trio::FileStreamImpl::getMemoryResource </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><span class="lineno"> 204</span> {</div>
<div class="line"><span class="lineno"> 205</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a18054e12a142178b3e27568e1423e29e">memRes</a>;</div>
<div class="line"><span class="lineno"> 206</span>}</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="classtrio_1_1FileStreamImpl.html#a18054e12a142178b3e27568e1423e29e">memRes</a>.</p>
</div>
</div>
<a id="af5145015e4f7c55662aa7a248dc29c0d" name="af5145015e4f7c55662aa7a248dc29c0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5145015e4f7c55662aa7a248dc29c0d">&#9670;&nbsp;</a></span>open()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void trio::FileStreamImpl::open </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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Open access to the stream. </p>
<p>Implements <a class="el" href="classtrio_1_1Openable.html#addfdc5360983a446fe200410a3eaef8f">trio::Openable</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 69</span> {</div>
<div class="line"><span class="lineno"> 70</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#adf03c5df9d13b53842a0856ef858a304">reset</a>();</div>
<div class="line"><span class="lineno"> 71</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.is_open()) {</div>
<div class="line"><span class="lineno"> 72</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#a20f4c9068fa8d05f6f6135c367fe4d24">AlreadyOpenError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 73</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 74</span> }</div>
<div class="line"><span class="lineno"> 75</span> </div>
<div class="line"><span class="lineno"> 76</span> std::ios_base::openmode flags{};</div>
<div class="line"><span class="lineno"> 77</span> flags |= (<a class="code hl_function" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">contains</a>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="code hl_enumvalue" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a7a1a5f3e79fdc91edf2f5ead9d66abb4">AccessMode::Read</a>) ? std::ios_base::in : flags);</div>
<div class="line"><span class="lineno"> 78</span> flags |= (<a class="code hl_function" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">contains</a>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="code hl_enumvalue" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a1129c0e4d43f2d121652a7302712cff6">AccessMode::Write</a>) ? std::ios_base::out : flags);</div>
<div class="line"><span class="lineno"> 79</span> flags |= (<a class="code hl_function" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">contains</a>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a3d005b224c0cbed66889a4f4f8c69902">fileOpenMode</a>, <a class="code hl_enumvalue" href="namespacetrio.html#a6020d2cf223a27e6f0c208754c379dcea6ce976e8f061b2b5cfe4d0c50c3405dd">OpenMode::Binary</a>) ? std::ios_base::binary : flags);</div>
<div class="line"><span class="lineno"> 80</span> flags |= std::ios_base::ate;</div>
<div class="line"><span class="lineno"> 81</span> </div>
<div class="line"><span class="lineno"> 82</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a> == <a class="code hl_enumvalue" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a70a2a84088d405a2e3f1e3accaa16723">AccessMode::ReadWrite</a>) {</div>
<div class="line"><span class="lineno"> 83</span> <a class="code hl_function" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#afa58d827cf481667e5b42650bea4f0b9">ensureFileExistsStd</a>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 84</span> }</div>
<div class="line"><span class="lineno"> 85</span> </div>
<div class="line"><span class="lineno"> 86</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.open(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str(), flags);</div>
<div class="line"><span class="lineno"> 87</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.good()) {</div>
<div class="line"><span class="lineno"> 88</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#a0298a701e6508d21a06a7a12beea4ba2">OpenError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 89</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 90</span> }</div>
<div class="line"><span class="lineno"> 91</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a> = <span class="keyword">static_cast&lt;</span>std::uint64_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.tellg());</div>
<div class="line"><span class="lineno"> 92</span> <a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a6f2a2ac467cec1b636300d6ed9ab9f48">seek</a>(0ul);</div>
<div class="line"><span class="lineno"> 93</span>}</div>
<div class="ttc" id="aclasssc_1_1StatusProvider_html_a0894ef1ff8f81599f9becda261abd4a8"><div class="ttname"><a href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">sc::StatusProvider::set</a></div><div class="ttdeci">static void set(StatusCode status)</div><div class="ttdef"><b>Definition:</b> Provider.cpp:33</div></div>
<div class="ttc" id="aclasssc_1_1StatusProvider_html_adf03c5df9d13b53842a0856ef858a304"><div class="ttname"><a href="classsc_1_1StatusProvider.html#adf03c5df9d13b53842a0856ef858a304">sc::StatusProvider::reset</a></div><div class="ttdeci">static void reset()</div><div class="ttdef"><b>Definition:</b> Provider.cpp:21</div></div>
<div class="ttc" id="aclasstrio_1_1BoundedIOStream_html_a0298a701e6508d21a06a7a12beea4ba2"><div class="ttname"><a href="classtrio_1_1BoundedIOStream.html#a0298a701e6508d21a06a7a12beea4ba2">trio::BoundedIOStream::OpenError</a></div><div class="ttdeci">static const sc::StatusCode OpenError</div><div class="ttdef"><b>Definition:</b> Stream.h:19</div></div>
<div class="ttc" id="aclasstrio_1_1BoundedIOStream_html_a20f4c9068fa8d05f6f6135c367fe4d24"><div class="ttname"><a href="classtrio_1_1BoundedIOStream.html#a20f4c9068fa8d05f6f6135c367fe4d24">trio::BoundedIOStream::AlreadyOpenError</a></div><div class="ttdeci">static const sc::StatusCode AlreadyOpenError</div><div class="ttdef"><b>Definition:</b> Stream.h:22</div></div>
<div class="ttc" id="aclasstrio_1_1FileStreamImpl_html_a6f2a2ac467cec1b636300d6ed9ab9f48"><div class="ttname"><a href="classtrio_1_1FileStreamImpl.html#a6f2a2ac467cec1b636300d6ed9ab9f48">trio::FileStreamImpl::seek</a></div><div class="ttdeci">void seek(std::uint64_t position) override</div><div class="ttdoc">Set the current position in the stream.</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.cpp:103</div></div>
<div class="ttc" id="aclasstrio_1_1FileStreamImpl_html_aef2982a7c16c85b76f49b5b6daabebae"><div class="ttname"><a href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">trio::FileStreamImpl::status</a></div><div class="ttdeci">StreamStatus status</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.h:49</div></div>
<div class="ttc" id="anamespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03_html_afa58d827cf481667e5b42650bea4f0b9"><div class="ttname"><a href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#afa58d827cf481667e5b42650bea4f0b9">trio::anonymous_namespace{FileStreamImpl.cpp}::ensureFileExistsStd</a></div><div class="ttdeci">void ensureFileExistsStd(const NativeCharacter *path)</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.cpp:36</div></div>
<div class="ttc" id="anamespacetrio_html_a4a9deb5723842416dbadbb9f84554049"><div class="ttname"><a href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">trio::contains</a></div><div class="ttdeci">std::enable_if&lt; std::is_enum&lt; TEnum &gt;::value, bool &gt;::type contains(TEnum lhs, TEnum rhs)</div><div class="ttdef"><b>Definition:</b> trio/utils/ScopedEnumEx.h:57</div></div>
<div class="ttc" id="anamespacetrio_html_a4b77aebe484e434a3112e66b70acd116a1129c0e4d43f2d121652a7302712cff6"><div class="ttname"><a href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a1129c0e4d43f2d121652a7302712cff6">trio::AccessMode::Write</a></div><div class="ttdeci">@ Write</div></div>
<div class="ttc" id="anamespacetrio_html_a4b77aebe484e434a3112e66b70acd116a70a2a84088d405a2e3f1e3accaa16723"><div class="ttname"><a href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a70a2a84088d405a2e3f1e3accaa16723">trio::AccessMode::ReadWrite</a></div><div class="ttdeci">@ ReadWrite</div></div>
<div class="ttc" id="anamespacetrio_html_a4b77aebe484e434a3112e66b70acd116a7a1a5f3e79fdc91edf2f5ead9d66abb4"><div class="ttname"><a href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a7a1a5f3e79fdc91edf2f5ead9d66abb4">trio::AccessMode::Read</a></div><div class="ttdeci">@ Read</div></div>
<div class="ttc" id="anamespacetrio_html_a6020d2cf223a27e6f0c208754c379dcea6ce976e8f061b2b5cfe4d0c50c3405dd"><div class="ttname"><a href="namespacetrio.html#a6020d2cf223a27e6f0c208754c379dcea6ce976e8f061b2b5cfe4d0c50c3405dd">trio::OpenMode::Binary</a></div><div class="ttdeci">@ Binary</div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="classtrio_1_1BoundedIOStream.html#a20f4c9068fa8d05f6f6135c367fe4d24">trio::BoundedIOStream::AlreadyOpenError</a>, <a class="el" href="namespacetrio.html#a6020d2cf223a27e6f0c208754c379dcea6ce976e8f061b2b5cfe4d0c50c3405dd">trio::Binary</a>, <a class="el" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">trio::contains()</a>, <a class="el" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#afa58d827cf481667e5b42650bea4f0b9">trio::anonymous_namespace{FileStreamImpl.cpp}::ensureFileExistsStd()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a3d005b224c0cbed66889a4f4f8c69902">fileOpenMode</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a>, <a class="el" href="classtrio_1_1BoundedIOStream.html#a0298a701e6508d21a06a7a12beea4ba2">trio::BoundedIOStream::OpenError</a>, <a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a7a1a5f3e79fdc91edf2f5ead9d66abb4">trio::Read</a>, <a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a70a2a84088d405a2e3f1e3accaa16723">trio::ReadWrite</a>, <a class="el" href="classsc_1_1StatusProvider.html#adf03c5df9d13b53842a0856ef858a304">sc::StatusProvider::reset()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a6f2a2ac467cec1b636300d6ed9ab9f48">seek()</a>, <a class="el" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">sc::StatusProvider::set()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>, and <a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a1129c0e4d43f2d121652a7302712cff6">trio::Write</a>.</p>
</div>
</div>
<a id="abf0a546ad27b383f94b94e58a9210845" name="abf0a546ad27b383f94b94e58a9210845"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf0a546ad27b383f94b94e58a9210845">&#9670;&nbsp;</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">std::size_t trio::FileStreamImpl::read </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>destination</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::size_t&#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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read bytes from stream into the given buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">destination</td><td>Destination buffer into which the data is going to be read from the stream. </td></tr>
<tr><td class="paramname">size</td><td>Number of bytes to read from stream. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of bytes read. </dd></dl>
<p>Implements <a class="el" href="classtrio_1_1Readable.html#a134ad61b17c812f7aa2d912fc96d36f9">trio::Readable</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 116</span> {</div>
<div class="line"><span class="lineno"> 117</span> <span class="keywordflow">if</span> ((destination == <span class="keyword">nullptr</span>) || <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.fail() || !<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.is_open() || !<a class="code hl_function" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">contains</a>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="code hl_enumvalue" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a7a1a5f3e79fdc91edf2f5ead9d66abb4">AccessMode::Read</a>)) {</div>
<div class="line"><span class="lineno"> 118</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#a5bca141b1213e5f752a4fde5679708bd">ReadError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 119</span> <span class="keywordflow">return</span> 0ul;</div>
<div class="line"><span class="lineno"> 120</span> }</div>
<div class="line"><span class="lineno"> 121</span> </div>
<div class="line"><span class="lineno"> 122</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.read(destination, <span class="keyword">static_cast&lt;</span>std::streamsize<span class="keyword">&gt;</span>(<a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>));</div>
<div class="line"><span class="lineno"> 123</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.good() &amp;&amp; !<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.eof()) {</div>
<div class="line"><span class="lineno"> 124</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#a5bca141b1213e5f752a4fde5679708bd">ReadError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 125</span> }</div>
<div class="line"><span class="lineno"> 126</span> </div>
<div class="line"><span class="lineno"> 127</span> <span class="keyword">const</span> <span class="keyword">auto</span> bytesRead = <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.gcount();</div>
<div class="line"><span class="lineno"> 128</span> <span class="keywordflow">return</span> (bytesRead &gt; 0 ? <span class="keyword">static_cast&lt;</span>std::size_t<span class="keyword">&gt;</span>(bytesRead) : 0ul);</div>
<div class="line"><span class="lineno"> 129</span>}</div>
<div class="ttc" id="aclasstrio_1_1BoundedIOStream_html_a5bca141b1213e5f752a4fde5679708bd"><div class="ttname"><a href="classtrio_1_1BoundedIOStream.html#a5bca141b1213e5f752a4fde5679708bd">trio::BoundedIOStream::ReadError</a></div><div class="ttdeci">static const sc::StatusCode ReadError</div><div class="ttdef"><b>Definition:</b> Stream.h:20</div></div>
<div class="ttc" id="aclasstrio_1_1FileStreamImpl_html_a886f87940390609350ebac7d3e34e225"><div class="ttname"><a href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">trio::FileStreamImpl::size</a></div><div class="ttdeci">std::uint64_t size() override</div><div class="ttdoc">Obtain size of stream in bytes.</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.cpp:200</div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">trio::contains()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>, <a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a7a1a5f3e79fdc91edf2f5ead9d66abb4">trio::Read</a>, <a class="el" href="classtrio_1_1BoundedIOStream.html#a5bca141b1213e5f752a4fde5679708bd">trio::BoundedIOStream::ReadError</a>, <a class="el" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">sc::StatusProvider::set()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size()</a>, and <a class="el" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>.</p>
</div>
</div>
<a id="a6ea1c44150f144f5b632d4c32f62f08c" name="a6ea1c44150f144f5b632d4c32f62f08c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ea1c44150f144f5b632d4c32f62f08c">&#9670;&nbsp;</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">std::size_t trio::FileStreamImpl::read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classtrio_1_1Writable.html">Writable</a> *&#160;</td>
<td class="paramname"><em>destination</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::size_t&#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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read bytes from this stream into the given stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">destination</td><td>Destination stream into which the data is going to be read from this stream. </td></tr>
<tr><td class="paramname">size</td><td>Number of bytes to read from stream. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of bytes read. </dd></dl>
<p>Implements <a class="el" href="classtrio_1_1Readable.html#ae7272a2547bb33c20c9b37493491c6c1">trio::Readable</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 131</span> {</div>
<div class="line"><span class="lineno"> 132</span> <span class="keywordflow">if</span> ((destination == <span class="keyword">nullptr</span>) || <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.fail() || !<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.is_open() || !<a class="code hl_function" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">contains</a>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="code hl_enumvalue" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a7a1a5f3e79fdc91edf2f5ead9d66abb4">AccessMode::Read</a>)) {</div>
<div class="line"><span class="lineno"> 133</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#a5bca141b1213e5f752a4fde5679708bd">ReadError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 134</span> <span class="keywordflow">return</span> 0ul;</div>
<div class="line"><span class="lineno"> 135</span> }</div>
<div class="line"><span class="lineno"> 136</span> </div>
<div class="line"><span class="lineno"> 137</span> <span class="keywordtype">char</span> buffer[<a class="code hl_variable" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">bufferSize</a>];</div>
<div class="line"><span class="lineno"> 138</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a> &gt; <a class="code hl_variable" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">bufferSize</a>) {</div>
<div class="line"><span class="lineno"> 139</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.read(buffer, <span class="keyword">static_cast&lt;</span>std::streamsize<span class="keyword">&gt;</span>(<a class="code hl_variable" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">bufferSize</a>));</div>
<div class="line"><span class="lineno"> 140</span> destination-&gt;write(buffer, <a class="code hl_variable" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">bufferSize</a>);</div>
<div class="line"><span class="lineno"> 141</span> <a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a> -= <a class="code hl_variable" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">bufferSize</a>;</div>
<div class="line"><span class="lineno"> 142</span> }</div>
<div class="line"><span class="lineno"> 143</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.read(buffer, <span class="keyword">static_cast&lt;</span>std::streamsize<span class="keyword">&gt;</span>(<a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>));</div>
<div class="line"><span class="lineno"> 144</span> destination-&gt;write(buffer, <a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>);</div>
<div class="line"><span class="lineno"> 145</span> </div>
<div class="line"><span class="lineno"> 146</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.good() &amp;&amp; !<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.eof()) {</div>
<div class="line"><span class="lineno"> 147</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#a5bca141b1213e5f752a4fde5679708bd">ReadError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 148</span> }</div>
<div class="line"><span class="lineno"> 149</span> <span class="keyword">const</span> <span class="keyword">auto</span> bytesRead = <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.gcount();</div>
<div class="line"><span class="lineno"> 150</span> <span class="keywordflow">return</span> (bytesRead &gt; 0 ? <span class="keyword">static_cast&lt;</span>std::size_t<span class="keyword">&gt;</span>(bytesRead) : 0ul);</div>
<div class="line"><span class="lineno"> 151</span>}</div>
<div class="ttc" id="anamespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03_html_a6c0884d13cc39d78a7b57aaa3c8cfe49"><div class="ttname"><a href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">trio::anonymous_namespace{FileStreamImpl.cpp}::bufferSize</a></div><div class="ttdeci">constexpr std::size_t bufferSize</div><div class="ttdef"><b>Definition:</b> FileStreamImpl.cpp:29</div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">trio::anonymous_namespace{FileStreamImpl.cpp}::bufferSize</a>, <a class="el" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">trio::contains()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>, <a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a7a1a5f3e79fdc91edf2f5ead9d66abb4">trio::Read</a>, <a class="el" href="classtrio_1_1BoundedIOStream.html#a5bca141b1213e5f752a4fde5679708bd">trio::BoundedIOStream::ReadError</a>, <a class="el" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">sc::StatusProvider::set()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>, and <a class="el" href="classtrio_1_1Writable.html#a463e8d3e652fc4c3ce971d3fc2eaec7e">trio::Writable::write()</a>.</p>
</div>
</div>
<a id="a6f2a2ac467cec1b636300d6ed9ab9f48" name="a6f2a2ac467cec1b636300d6ed9ab9f48"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f2a2ac467cec1b636300d6ed9ab9f48">&#9670;&nbsp;</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">void trio::FileStreamImpl::seek </td>
<td>(</td>
<td class="paramtype">std::uint64_t&#160;</td>
<td class="paramname"><em>position</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the current position in the stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">position</td><td>Position in the stream relative to it's start, with 0 denoting the start position. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classtrio_1_1Seekable.html#aea11c922f49ddf61a0f30f7ad41dde2c">trio::Seekable</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 103</span> {</div>
<div class="line"><span class="lineno"> 104</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> seekable = (position == 0ul || position &lt;= <a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>()) &amp;&amp; <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.good();</div>
<div class="line"><span class="lineno"> 105</span> <span class="keywordflow">if</span> (!seekable) {</div>
<div class="line"><span class="lineno"> 106</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#afbe507ff2b39fc2ccb8550dfc27e0ce9">SeekError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 107</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 108</span> }</div>
<div class="line"><span class="lineno"> 109</span> </div>
<div class="line"><span class="lineno"> 110</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.seekp(<span class="keyword">static_cast&lt;</span>std::streamoff<span class="keyword">&gt;</span>(position));</div>
<div class="line"><span class="lineno"> 111</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.good()) {</div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#afbe507ff2b39fc2ccb8550dfc27e0ce9">SeekError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 113</span> }</div>
<div class="line"><span class="lineno"> 114</span>}</div>
<div class="ttc" id="aclasstrio_1_1BoundedIOStream_html_afbe507ff2b39fc2ccb8550dfc27e0ce9"><div class="ttname"><a href="classtrio_1_1BoundedIOStream.html#afbe507ff2b39fc2ccb8550dfc27e0ce9">trio::BoundedIOStream::SeekError</a></div><div class="ttdeci">static const sc::StatusCode SeekError</div><div class="ttdef"><b>Definition:</b> Stream.h:23</div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>, <a class="el" href="classtrio_1_1BoundedIOStream.html#afbe507ff2b39fc2ccb8550dfc27e0ce9">trio::BoundedIOStream::SeekError</a>, <a class="el" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">sc::StatusProvider::set()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size()</a>, and <a class="el" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>.</p>
<p class="reference">Referenced by <a class="el" href="classtrio_1_1FileStreamImpl.html#af5145015e4f7c55662aa7a248dc29c0d">open()</a>.</p>
</div>
</div>
<a id="a886f87940390609350ebac7d3e34e225" name="a886f87940390609350ebac7d3e34e225"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a886f87940390609350ebac7d3e34e225">&#9670;&nbsp;</a></span>size()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::uint64_t trio::FileStreamImpl::size </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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Obtain size of stream in bytes. </p>
<dl class="section return"><dt>Returns</dt><dd>Size in bytes. </dd></dl>
<p>Implements <a class="el" href="classtrio_1_1Bounded.html#af35254c3e5f016117885d7234c80d9a7">trio::Bounded</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 200</span> {</div>
<div class="line"><span class="lineno"> 201</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a>;</div>
<div class="line"><span class="lineno"> 202</span>}</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a>.</p>
<p class="reference">Referenced by <a class="el" href="classtrio_1_1FileStreamImpl.html#abf0a546ad27b383f94b94e58a9210845">read()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a6f2a2ac467cec1b636300d6ed9ab9f48">seek()</a>, and <a class="el" href="classtrio_1_1FileStreamImpl.html#a21553243d67bcf7b017a24d71820c9fb">write()</a>.</p>
</div>
</div>
<a id="a35066ab7b50de21eeca6a592c11a4cd1" name="a35066ab7b50de21eeca6a592c11a4cd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35066ab7b50de21eeca6a592c11a4cd1">&#9670;&nbsp;</a></span>tell()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::uint64_t trio::FileStreamImpl::tell </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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current position in the stream. </p>
<dl class="section return"><dt>Returns</dt><dd>Position in the stream relative to it's start, with 0 denoting the start position. </dd></dl>
<p>Implements <a class="el" href="classtrio_1_1Seekable.html#af5071bbc6e4760fdfb3d5c0d83117b85">trio::Seekable</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 99</span> {</div>
<div class="line"><span class="lineno"> 100</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>std::uint64_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.tellp());</div>
<div class="line"><span class="lineno"> 101</span>}</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.</p>
</div>
</div>
<a id="a21553243d67bcf7b017a24d71820c9fb" name="a21553243d67bcf7b017a24d71820c9fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21553243d67bcf7b017a24d71820c9fb">&#9670;&nbsp;</a></span>write() <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">std::size_t trio::FileStreamImpl::write </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::size_t&#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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes bytes from the given buffer to the stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>Source buffer from which the data is going to be written to the stream. </td></tr>
<tr><td class="paramname">size</td><td>Number of bytes to write to the stream. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of bytes written. </dd></dl>
<p>Implements <a class="el" href="classtrio_1_1Writable.html#a463e8d3e652fc4c3ce971d3fc2eaec7e">trio::Writable</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 153</span> {</div>
<div class="line"><span class="lineno"> 154</span> <span class="keywordflow">if</span> ((source == <span class="keyword">nullptr</span>) || <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.fail() || !<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.is_open() || !<a class="code hl_function" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">contains</a>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="code hl_enumvalue" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a1129c0e4d43f2d121652a7302712cff6">AccessMode::Write</a>)) {</div>
<div class="line"><span class="lineno"> 155</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#adaa88ae7c4bbeda319710963adc81ce8">WriteError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 156</span> <span class="keywordflow">return</span> 0ul;</div>
<div class="line"><span class="lineno"> 157</span> }</div>
<div class="line"><span class="lineno"> 158</span> </div>
<div class="line"><span class="lineno"> 159</span> <span class="keyword">const</span> <span class="keyword">auto</span> preWritePos = <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.tellp();</div>
<div class="line"><span class="lineno"> 160</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.write(source, <span class="keyword">static_cast&lt;</span>std::streamsize<span class="keyword">&gt;</span>(<a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>));</div>
<div class="line"><span class="lineno"> 161</span> <span class="keyword">const</span> <span class="keyword">auto</span> postWritePos = <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.tellp();</div>
<div class="line"><span class="lineno"> 162</span> </div>
<div class="line"><span class="lineno"> 163</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.good()) {</div>
<div class="line"><span class="lineno"> 164</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#adaa88ae7c4bbeda319710963adc81ce8">WriteError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 165</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 166</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a> = std::max(<span class="keyword">static_cast&lt;</span>std::uint64_t<span class="keyword">&gt;</span>(postWritePos), <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a>);</div>
<div class="line"><span class="lineno"> 167</span> }</div>
<div class="line"><span class="lineno"> 168</span> </div>
<div class="line"><span class="lineno"> 169</span> <span class="keywordflow">return</span> (postWritePos &gt; preWritePos ? <span class="keyword">static_cast&lt;</span>std::size_t<span class="keyword">&gt;</span>(postWritePos - preWritePos) : 0ul);</div>
<div class="line"><span class="lineno"> 170</span>}</div>
<div class="ttc" id="aclasstrio_1_1BoundedIOStream_html_adaa88ae7c4bbeda319710963adc81ce8"><div class="ttname"><a href="classtrio_1_1BoundedIOStream.html#adaa88ae7c4bbeda319710963adc81ce8">trio::BoundedIOStream::WriteError</a></div><div class="ttdeci">static const sc::StatusCode WriteError</div><div class="ttdef"><b>Definition:</b> Stream.h:21</div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">trio::contains()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a>, <a class="el" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">sc::StatusProvider::set()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>, <a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a1129c0e4d43f2d121652a7302712cff6">trio::Write</a>, and <a class="el" href="classtrio_1_1BoundedIOStream.html#adaa88ae7c4bbeda319710963adc81ce8">trio::BoundedIOStream::WriteError</a>.</p>
</div>
</div>
<a id="a876dfedc5ad235e338e53b6ab80d087d" name="a876dfedc5ad235e338e53b6ab80d087d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a876dfedc5ad235e338e53b6ab80d087d">&#9670;&nbsp;</a></span>write() <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">std::size_t trio::FileStreamImpl::write </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classtrio_1_1Readable.html">Readable</a> *&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::size_t&#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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes bytes from the given stream to this stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>Source stream from which the data is going to be written into this stream. </td></tr>
<tr><td class="paramname">size</td><td>Number of bytes to write to the stream. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of bytes written. </dd></dl>
<p>Implements <a class="el" href="classtrio_1_1Writable.html#a7c23fed723a8afefd8ecfd78a48d18dc">trio::Writable</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 172</span> {</div>
<div class="line"><span class="lineno"> 173</span> <span class="keywordflow">if</span> ((source == <span class="keyword">nullptr</span>) || <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.fail() || !<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.is_open() || !<a class="code hl_function" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">contains</a>(<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="code hl_enumvalue" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a1129c0e4d43f2d121652a7302712cff6">AccessMode::Write</a>)) {</div>
<div class="line"><span class="lineno"> 174</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#adaa88ae7c4bbeda319710963adc81ce8">WriteError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 175</span> <span class="keywordflow">return</span> 0ul;</div>
<div class="line"><span class="lineno"> 176</span> }</div>
<div class="line"><span class="lineno"> 177</span> </div>
<div class="line"><span class="lineno"> 178</span> <span class="keyword">const</span> <span class="keyword">auto</span> preWritePos = <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.tellp();</div>
<div class="line"><span class="lineno"> 179</span> </div>
<div class="line"><span class="lineno"> 180</span> <span class="keywordtype">char</span> buffer[<a class="code hl_variable" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">bufferSize</a>];</div>
<div class="line"><span class="lineno"> 181</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a> &gt; <a class="code hl_variable" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">bufferSize</a>) {</div>
<div class="line"><span class="lineno"> 182</span> source-&gt;read(buffer, <a class="code hl_variable" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">bufferSize</a>);</div>
<div class="line"><span class="lineno"> 183</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.write(buffer, <span class="keyword">static_cast&lt;</span>std::streamsize<span class="keyword">&gt;</span>(<a class="code hl_variable" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">bufferSize</a>));</div>
<div class="line"><span class="lineno"> 184</span> <a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a> -= <a class="code hl_variable" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">bufferSize</a>;</div>
<div class="line"><span class="lineno"> 185</span> }</div>
<div class="line"><span class="lineno"> 186</span> source-&gt;read(buffer, <a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>);</div>
<div class="line"><span class="lineno"> 187</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.write(buffer, <span class="keyword">static_cast&lt;</span>std::streamsize<span class="keyword">&gt;</span>(<a class="code hl_function" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size</a>));</div>
<div class="line"><span class="lineno"> 188</span> </div>
<div class="line"><span class="lineno"> 189</span> <span class="keyword">const</span> <span class="keyword">auto</span> postWritePos = <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.tellp();</div>
<div class="line"><span class="lineno"> 190</span> </div>
<div class="line"><span class="lineno"> 191</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>.good()) {</div>
<div class="line"><span class="lineno"> 192</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>-&gt;<a class="code hl_function" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">set</a>(<a class="code hl_variable" href="classtrio_1_1BoundedIOStream.html#adaa88ae7c4bbeda319710963adc81ce8">WriteError</a>, <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>.c_str());</div>
<div class="line"><span class="lineno"> 193</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 194</span> <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a> = std::max(<span class="keyword">static_cast&lt;</span>std::uint64_t<span class="keyword">&gt;</span>(postWritePos), <a class="code hl_variable" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a>);</div>
<div class="line"><span class="lineno"> 195</span> }</div>
<div class="line"><span class="lineno"> 196</span> </div>
<div class="line"><span class="lineno"> 197</span> <span class="keywordflow">return</span> (postWritePos &gt; preWritePos ? <span class="keyword">static_cast&lt;</span>std::size_t<span class="keyword">&gt;</span>(postWritePos - preWritePos) : 0ul);</div>
<div class="line"><span class="lineno"> 198</span>}</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespacetrio_1_1anonymous__namespace_02FileStreamImpl_8cpp_03.html#a6c0884d13cc39d78a7b57aaa3c8cfe49">trio::anonymous_namespace{FileStreamImpl.cpp}::bufferSize</a>, <a class="el" href="namespacetrio.html#a4a9deb5723842416dbadbb9f84554049">trio::contains()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a1eae9ba35342b17b9653961060afcd3f">file</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#af591e812e9dad5600be7c132c9f7abeb">fileAccessMode</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a0d550c09b548f308da42424c369b477d">filePath</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a80e65d12e393b02062f876f2f203841f">fileSize</a>, <a class="el" href="classtrio_1_1Readable.html#a134ad61b17c812f7aa2d912fc96d36f9">trio::Readable::read()</a>, <a class="el" href="classsc_1_1StatusProvider.html#a0894ef1ff8f81599f9becda261abd4a8">sc::StatusProvider::set()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#aef2982a7c16c85b76f49b5b6daabebae">status</a>, <a class="el" href="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116a1129c0e4d43f2d121652a7302712cff6">trio::Write</a>, and <a class="el" href="classtrio_1_1BoundedIOStream.html#adaa88ae7c4bbeda319710963adc81ce8">trio::BoundedIOStream::WriteError</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a1eae9ba35342b17b9653961060afcd3f" name="a1eae9ba35342b17b9653961060afcd3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1eae9ba35342b17b9653961060afcd3f">&#9670;&nbsp;</a></span>file</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::fstream trio::FileStreamImpl::file</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="classtrio_1_1FileStreamImpl.html#a42f32344da4b9686abee8a71d4730ccb">close()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#af5145015e4f7c55662aa7a248dc29c0d">open()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#abf0a546ad27b383f94b94e58a9210845">read()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a6f2a2ac467cec1b636300d6ed9ab9f48">seek()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a35066ab7b50de21eeca6a592c11a4cd1">tell()</a>, and <a class="el" href="classtrio_1_1FileStreamImpl.html#a21553243d67bcf7b017a24d71820c9fb">write()</a>.</p>
</div>
</div>
<a id="af591e812e9dad5600be7c132c9f7abeb" name="af591e812e9dad5600be7c132c9f7abeb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af591e812e9dad5600be7c132c9f7abeb">&#9670;&nbsp;</a></span>fileAccessMode</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="namespacetrio.html#a4b77aebe484e434a3112e66b70acd116">AccessMode</a> trio::FileStreamImpl::fileAccessMode</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="classtrio_1_1FileStreamImpl.html#af5145015e4f7c55662aa7a248dc29c0d">open()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#abf0a546ad27b383f94b94e58a9210845">read()</a>, and <a class="el" href="classtrio_1_1FileStreamImpl.html#a21553243d67bcf7b017a24d71820c9fb">write()</a>.</p>
</div>
</div>
<a id="a3d005b224c0cbed66889a4f4f8c69902" name="a3d005b224c0cbed66889a4f4f8c69902"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d005b224c0cbed66889a4f4f8c69902">&#9670;&nbsp;</a></span>fileOpenMode</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="namespacetrio.html#a6020d2cf223a27e6f0c208754c379dce">OpenMode</a> trio::FileStreamImpl::fileOpenMode</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="classtrio_1_1FileStreamImpl.html#af5145015e4f7c55662aa7a248dc29c0d">open()</a>.</p>
</div>
</div>
<a id="a0d550c09b548f308da42424c369b477d" name="a0d550c09b548f308da42424c369b477d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d550c09b548f308da42424c369b477d">&#9670;&nbsp;</a></span>filePath</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="namespacetrio.html#add2affebde5ca4fa798a3855cadd339b">NativeString</a> trio::FileStreamImpl::filePath</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="classtrio_1_1FileStreamImpl.html#af5145015e4f7c55662aa7a248dc29c0d">open()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#abf0a546ad27b383f94b94e58a9210845">read()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a6f2a2ac467cec1b636300d6ed9ab9f48">seek()</a>, and <a class="el" href="classtrio_1_1FileStreamImpl.html#a21553243d67bcf7b017a24d71820c9fb">write()</a>.</p>
</div>
</div>
<a id="a80e65d12e393b02062f876f2f203841f" name="a80e65d12e393b02062f876f2f203841f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80e65d12e393b02062f876f2f203841f">&#9670;&nbsp;</a></span>fileSize</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::uint64_t trio::FileStreamImpl::fileSize</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="classtrio_1_1FileStreamImpl.html#af5145015e4f7c55662aa7a248dc29c0d">open()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a886f87940390609350ebac7d3e34e225">size()</a>, and <a class="el" href="classtrio_1_1FileStreamImpl.html#a21553243d67bcf7b017a24d71820c9fb">write()</a>.</p>
</div>
</div>
<a id="a18054e12a142178b3e27568e1423e29e" name="a18054e12a142178b3e27568e1423e29e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18054e12a142178b3e27568e1423e29e">&#9670;&nbsp;</a></span>memRes</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="classpma_1_1MemoryResource.html">MemoryResource</a>* trio::FileStreamImpl::memRes</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="classtrio_1_1FileStreamImpl.html#a3e2cde283da92d981e698b4bd362ddea">getMemoryResource()</a>.</p>
</div>
</div>
<a id="aef2982a7c16c85b76f49b5b6daabebae" name="aef2982a7c16c85b76f49b5b6daabebae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef2982a7c16c85b76f49b5b6daabebae">&#9670;&nbsp;</a></span>status</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="classtrio_1_1StreamStatus.html">StreamStatus</a> trio::FileStreamImpl::status</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="classtrio_1_1FileStreamImpl.html#af5145015e4f7c55662aa7a248dc29c0d">open()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#abf0a546ad27b383f94b94e58a9210845">read()</a>, <a class="el" href="classtrio_1_1FileStreamImpl.html#a6f2a2ac467cec1b636300d6ed9ab9f48">seek()</a>, and <a class="el" href="classtrio_1_1FileStreamImpl.html#a21553243d67bcf7b017a24d71820c9fb">write()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="FileStreamImpl_8h_source.html">FileStreamImpl.h</a></li>
<li><a class="el" href="FileStreamImpl_8cpp.html">FileStreamImpl.cpp</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.4
</small></address>
</body>
</html>