Files
2026-08-16 18:24:52 +07:00

246 lines
11 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" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Base Module: FCloser&lt; T &gt; Struct Template 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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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" />
<link href="smtg_extra.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">Base Module<span id="projectnumber">&#160;VST 3.8</span>
</div>
<div id="projectbrief">SDK for developing VST plug-in</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',true);
$(function() { init_search(); });
});
/* @license-end */
</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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('structSteinberg_1_1FCloser.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structSteinberg_1_1FCloser-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">FCloser&lt; T &gt; Struct Template Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Template definition for classes that help closing resources.
<a href="#details">More...</a></p>
<p><code>#include &lt;fcleanup.h&gt;</code></p>
<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:a46a490c0e086deff18fe1a1d484b2910" id="r_a46a490c0e086deff18fe1a1d484b2910"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a46a490c0e086deff18fe1a1d484b2910">FCloser</a> (T *_obj)</td></tr>
<tr class="memdesc:a46a490c0e086deff18fe1a1d484b2910"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:a46a490c0e086deff18fe1a1d484b2910"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2187198e46898e7a63b0db52f9e2bf03" id="r_a2187198e46898e7a63b0db52f9e2bf03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2187198e46898e7a63b0db52f9e2bf03">~FCloser</a> ()</td></tr>
<tr class="memdesc:a2187198e46898e7a63b0db52f9e2bf03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. Calls the close function on the at construction time passed pointer. <br /></td></tr>
<tr class="separator:a2187198e46898e7a63b0db52f9e2bf03"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a370d397cf44fe716a1016d49f41defe1" id="r_a370d397cf44fe716a1016d49f41defe1"><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a370d397cf44fe716a1016d49f41defe1">obj</a></td></tr>
<tr class="memdesc:a370d397cf44fe716a1016d49f41defe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remembers the pointer on which close is to be called during destruction. <br /></td></tr>
<tr class="separator:a370d397cf44fe716a1016d49f41defe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class T&gt;<br />
struct Steinberg::FCloser&lt; T &gt;</div><p>Template definition for classes that help closing resources. </p>
<p>A stack allocated object of this type automatically calls the close method of an at construction time passed object when it reaches the end of its scope. It goes without saying that the given type needs to have a close method. <br />
<br />
Intended usage: </p><div class="fragment"><div class="line"><span class="keyword">struct </span>CloseableObject</div>
<div class="line">{</div>
<div class="line"> <span class="keywordtype">void</span> close() {};</div>
<div class="line">};</div>
<div class="line"> </div>
<div class="line">{</div>
<div class="line"> CloseableObject theObject;</div>
<div class="line"> <a class="code hl_struct" href="structSteinberg_1_1FCloser.html">Steinberg::FCloser&lt;CloseableObject&gt;</a> theCloser (&amp;theObject);</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Do something.</span></div>
<div class="line"> </div>
<div class="line">} <span class="comment">// Here the destructor of theCloser calls the close method of theObject.</span></div>
<div class="ttc" id="astructSteinberg_1_1FCloser_html"><div class="ttname"><a href="structSteinberg_1_1FCloser.html">Steinberg::FCloser</a></div><div class="ttdoc">Template definition for classes that help closing resources.</div><div class="ttdef"><b>Definition</b> fcleanup.h:227</div></div>
</div><!-- fragment --> </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a46a490c0e086deff18fe1a1d484b2910" name="a46a490c0e086deff18fe1a1d484b2910"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46a490c0e086deff18fe1a1d484b2910">&#9670;&#160;</a></span>FCloser()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structSteinberg_1_1FCloser.html">FCloser</a> </td>
<td>(</td>
<td class="paramtype">T *</td> <td class="paramname"><span class="paramname"><em>_obj</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
<p>_obj is the pointer on which close is to be called when this <a class="el" href="structSteinberg_1_1FCloser.html" title="Template definition for classes that help closing resources.">FCloser</a> object's destructor is executed. </p>
</div>
</div>
<a id="a2187198e46898e7a63b0db52f9e2bf03" name="a2187198e46898e7a63b0db52f9e2bf03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2187198e46898e7a63b0db52f9e2bf03">&#9670;&#160;</a></span>~FCloser()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">~<a class="el" href="structSteinberg_1_1FCloser.html">FCloser</a> </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor. Calls the close function on the at construction time passed pointer. </p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a370d397cf44fe716a1016d49f41defe1" name="a370d397cf44fe716a1016d49f41defe1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a370d397cf44fe716a1016d49f41defe1">&#9670;&#160;</a></span>obj</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
<table class="memname">
<tr>
<td class="memname">T* obj</td>
</tr>
</table>
</div><div class="memdoc">
<p>Remembers the pointer on which close is to be called during destruction. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<html>
<head>
<title>Empty</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="Steinberg">
</head>
<body>
<br/>
<hr width="100%" size="2" align="left" />
<div align=right>
Copyright &copy;<span id="year"></span> <a href="http://www.steinberg.net" target="_blank"><u>Steinberg Media Technologies GmbH</u></a>.
All Rights Reserved. This documentation is under this <a href="http://www.steinberg.net/sdklicenses" target="_blank"><u>license</u></a>.
</div>
<script>
document.querySelector("#year").textContent = new Date().getFullYear();
</script>
</body>
</html>