evmc/classevmc_1_1result.html
Documentation Bot 9b3a656372 Update docs
2020-01-07 15:35:10 +00:00

261 lines
19 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>EVMC: evmc::result 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">EVMC
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classevmc_1_1result.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classevmc_1_1result-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">evmc::result Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>The EVM code execution result.
<a href="classevmc_1_1result.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="evmc_8hpp_source.html">evmc.hpp</a>&gt;</code></p>
<p>Inherits <a class="el" href="structevmc__result.html">evmc_result</a>.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:add9ddebaace1c5d35784cfc6966d8aa8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classevmc_1_1result.html#add9ddebaace1c5d35784cfc6966d8aa8">result</a> (<a class="el" href="group__EVMC.html#ga4c0be97f333c050ff45321fcaa34d920">evmc_status_code</a> _status_code, int64_t _gas_left, const uint8_t *_output_data, size_t _output_size) noexcept</td></tr>
<tr class="memdesc:add9ddebaace1c5d35784cfc6966d8aa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the result from the provided arguments. <a href="#add9ddebaace1c5d35784cfc6966d8aa8">More...</a><br /></td></tr>
<tr class="separator:add9ddebaace1c5d35784cfc6966d8aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4753030d0491d94c2b64b15f025d5055"><td class="memItemLeft" align="right" valign="top"><a id="a4753030d0491d94c2b64b15f025d5055"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classevmc_1_1result.html#a4753030d0491d94c2b64b15f025d5055">result</a> (<a class="el" href="structevmc__result.html">evmc_result</a> const &amp;res) noexcept</td></tr>
<tr class="memdesc:a4753030d0491d94c2b64b15f025d5055"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converting constructor from raw <a class="el" href="structevmc__result.html" title="The EVM code execution result. ">evmc_result</a>. <br /></td></tr>
<tr class="separator:a4753030d0491d94c2b64b15f025d5055"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee479c5093974fed2ec14f33bafcfd32"><td class="memItemLeft" align="right" valign="top"><a id="aee479c5093974fed2ec14f33bafcfd32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classevmc_1_1result.html#aee479c5093974fed2ec14f33bafcfd32">~result</a> () noexcept</td></tr>
<tr class="memdesc:aee479c5093974fed2ec14f33bafcfd32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor responsible for automatically releasing attached resources. <br /></td></tr>
<tr class="separator:aee479c5093974fed2ec14f33bafcfd32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb05e759733ffba8140aef6b7a8dd550"><td class="memItemLeft" align="right" valign="top"><a id="aeb05e759733ffba8140aef6b7a8dd550"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classevmc_1_1result.html#aeb05e759733ffba8140aef6b7a8dd550">result</a> (<a class="el" href="classevmc_1_1result.html">result</a> &amp;&amp;other) noexcept</td></tr>
<tr class="memdesc:aeb05e759733ffba8140aef6b7a8dd550"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
<tr class="separator:aeb05e759733ffba8140aef6b7a8dd550"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a68d0dc6232c3ec44f07ad50bc83b66"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classevmc_1_1result.html">result</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classevmc_1_1result.html#a2a68d0dc6232c3ec44f07ad50bc83b66">operator=</a> (<a class="el" href="classevmc_1_1result.html">result</a> &amp;&amp;other) noexcept</td></tr>
<tr class="memdesc:a2a68d0dc6232c3ec44f07ad50bc83b66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator. <a href="#a2a68d0dc6232c3ec44f07ad50bc83b66">More...</a><br /></td></tr>
<tr class="separator:a2a68d0dc6232c3ec44f07ad50bc83b66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b924b2e8ee361277753810ad65930c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structevmc__result.html">evmc_result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classevmc_1_1result.html#a3b924b2e8ee361277753810ad65930c2">release_raw</a> () noexcept</td></tr>
<tr class="memdesc:a3b924b2e8ee361277753810ad65930c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases the ownership and returns the raw copy of <a class="el" href="structevmc__result.html" title="The EVM code execution result. ">evmc_result</a>. <a href="#a3b924b2e8ee361277753810ad65930c2">More...</a><br /></td></tr>
<tr class="separator:a3b924b2e8ee361277753810ad65930c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The EVM code execution result. </p>
<p>This is a RAII wrapper for <a class="el" href="structevmc__result.html" title="The EVM code execution result. ">evmc_result</a> and objects of this type automatically release attached resources. </p>
<p class="definition">Definition at line <a class="el" href="evmc_8hpp_source.html#l00331">331</a> of file <a class="el" href="evmc_8hpp_source.html">evmc.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="add9ddebaace1c5d35784cfc6966d8aa8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add9ddebaace1c5d35784cfc6966d8aa8">&#9670;&nbsp;</a></span>result()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">evmc::result::result </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__EVMC.html#ga4c0be97f333c050ff45321fcaa34d920">evmc_status_code</a>&#160;</td>
<td class="paramname"><em>_status_code</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>_gas_left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>_output_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>_output_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">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates the result from the provided arguments. </p>
<p>The provided output is copied to memory allocated with malloc() and the <a class="el" href="structevmc__result.html#a8727ff83d372ab0067bcf6656d30b0ed" title="The method releasing all resources associated with the result object. ">evmc_result::release</a> function is set to one invoking free().</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_status_code</td><td>The status code. </td></tr>
<tr><td class="paramname">_gas_left</td><td>The amount of gas left. </td></tr>
<tr><td class="paramname">_output_data</td><td>The pointer to the output. </td></tr>
<tr><td class="paramname">_output_size</td><td>The output size. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="evmc_8hpp_source.html#l00349">349</a> of file <a class="el" href="evmc_8hpp_source.html">evmc.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; : <a class="code" href="structevmc__result.html">evmc_result</a>{<a class="code" href="namespaceevmc.html#a9843b267dc279832b0ff9578b7dacdb7">make_result</a>(_status_code, _gas_left, _output_data, _output_size)}</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {}</div><div class="ttc" id="namespaceevmc_html_a9843b267dc279832b0ff9578b7dacdb7"><div class="ttname"><a href="namespaceevmc.html#a9843b267dc279832b0ff9578b7dacdb7">evmc::make_result</a></div><div class="ttdeci">constexpr auto make_result</div><div class="ttdoc">Alias for evmc_make_result(). </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8hpp_source.html#l00325">evmc.hpp:325</a></div></div>
<div class="ttc" id="structevmc__result_html"><div class="ttname"><a href="structevmc__result.html">evmc_result</a></div><div class="ttdoc">The EVM code execution result. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00340">evmc.h:340</a></div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a2a68d0dc6232c3ec44f07ad50bc83b66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a68d0dc6232c3ec44f07ad50bc83b66">&#9670;&nbsp;</a></span>operator=()</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="classevmc_1_1result.html">result</a>&amp; evmc::result::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classevmc_1_1result.html">result</a> &amp;&amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move assignment operator. </p>
<p>The self-assigment MUST never happen.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>The other result object. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The reference to the left-hand side object. </dd></dl>
<p class="definition">Definition at line <a class="el" href="evmc_8hpp_source.html#l00378">378</a> of file <a class="el" href="evmc_8hpp_source.html">evmc.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; this-&gt;<a class="code" href="classevmc_1_1result.html#aee479c5093974fed2ec14f33bafcfd32">~result</a>(); <span class="comment">// Release this object.</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="structevmc__result.html">evmc_result</a>&amp;<span class="keyword">&gt;</span>(*this) = other; <span class="comment">// Copy data.</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; other.<a class="code" href="structevmc__result.html#a8727ff83d372ab0067bcf6656d30b0ed">release</a> = <span class="keyword">nullptr</span>; <span class="comment">// Disable releasing of the rvalue object.</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="ttc" id="classevmc_1_1result_html_aee479c5093974fed2ec14f33bafcfd32"><div class="ttname"><a href="classevmc_1_1result.html#aee479c5093974fed2ec14f33bafcfd32">evmc::result::~result</a></div><div class="ttdeci">~result() noexcept</div><div class="ttdoc">Destructor responsible for automatically releasing attached resources. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8hpp_source.html#l00360">evmc.hpp:360</a></div></div>
<div class="ttc" id="structevmc__result_html_a8727ff83d372ab0067bcf6656d30b0ed"><div class="ttname"><a href="structevmc__result.html#a8727ff83d372ab0067bcf6656d30b0ed">evmc_result::release</a></div><div class="ttdeci">evmc_release_result_fn release</div><div class="ttdoc">The method releasing all resources associated with the result object. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00392">evmc.h:392</a></div></div>
<div class="ttc" id="structevmc__result_html"><div class="ttname"><a href="structevmc__result.html">evmc_result</a></div><div class="ttdoc">The EVM code execution result. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00340">evmc.h:340</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a3b924b2e8ee361277753810ad65930c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b924b2e8ee361277753810ad65930c2">&#9670;&nbsp;</a></span>release_raw()</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="structevmc__result.html">evmc_result</a> evmc::result::release_raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Releases the ownership and returns the raw copy of <a class="el" href="structevmc__result.html" title="The EVM code execution result. ">evmc_result</a>. </p>
<p>This method drops the ownership of the result (result's resources are not going to be released when this object is destructed). It is the caller's responsibility having the returned copy of the result to release it. This object MUST NOT be used after this method is invoked.</p>
<dl class="section return"><dt>Returns</dt><dd>The copy of this object converted to raw <a class="el" href="structevmc__result.html" title="The EVM code execution result. ">evmc_result</a>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="evmc_8hpp_source.html#l00394">394</a> of file <a class="el" href="evmc_8hpp_source.html">evmc.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> out = <a class="code" href="structevmc__result.html">evmc_result</a>{*<span class="keyword">this</span>}; <span class="comment">// Copy data.</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; this-&gt;<a class="code" href="structevmc__result.html#a8727ff83d372ab0067bcf6656d30b0ed">release</a> = <span class="keyword">nullptr</span>; <span class="comment">// Disable releasing of this object.</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; }</div><div class="ttc" id="structevmc__result_html_a8727ff83d372ab0067bcf6656d30b0ed"><div class="ttname"><a href="structevmc__result.html#a8727ff83d372ab0067bcf6656d30b0ed">evmc_result::release</a></div><div class="ttdeci">evmc_release_result_fn release</div><div class="ttdoc">The method releasing all resources associated with the result object. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00392">evmc.h:392</a></div></div>
<div class="ttc" id="structevmc__result_html"><div class="ttname"><a href="structevmc__result.html">evmc_result</a></div><div class="ttdoc">The EVM code execution result. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00340">evmc.h:340</a></div></div>
</div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/evmc/<a class="el" href="evmc_8hpp_source.html">evmc.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespaceevmc.html">evmc</a></li><li class="navelem"><a class="el" href="classevmc_1_1result.html">result</a></li>
<li class="footer">Generated on Tue Jan 7 2020 15:35:10 for EVMC by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
</div>
</body>
</html>