xref: /freebsd/contrib/lutok/api-docs/html/a00883.html (revision 132f818ddbf457ee67d502cd89b5a18e0a34713d)
1*132f818dSEnji Cooper<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2*132f818dSEnji Cooper<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
3*132f818dSEnji Cooper<head>
4*132f818dSEnji Cooper<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5*132f818dSEnji Cooper<meta http-equiv="X-UA-Compatible" content="IE=11"/>
6*132f818dSEnji Cooper<meta name="generator" content="Doxygen 1.9.6"/>
7*132f818dSEnji Cooper<meta name="viewport" content="width=device-width, initial-scale=1"/>
8*132f818dSEnji Cooper<title>Lutok: lutok::state_c_gate Class Reference</title>
9*132f818dSEnji Cooper<link href="tabs.css" rel="stylesheet" type="text/css"/>
10*132f818dSEnji Cooper<script type="text/javascript" src="jquery.js"></script>
11*132f818dSEnji Cooper<script type="text/javascript" src="dynsections.js"></script>
12*132f818dSEnji Cooper<link href="search/search.css" rel="stylesheet" type="text/css"/>
13*132f818dSEnji Cooper<script type="text/javascript" src="search/searchdata.js"></script>
14*132f818dSEnji Cooper<script type="text/javascript" src="search/search.js"></script>
15*132f818dSEnji Cooper<link href="doxygen.css" rel="stylesheet" type="text/css" />
16*132f818dSEnji Cooper</head>
17*132f818dSEnji Cooper<body>
18*132f818dSEnji Cooper<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19*132f818dSEnji Cooper<div id="titlearea">
20*132f818dSEnji Cooper<table cellspacing="0" cellpadding="0">
21*132f818dSEnji Cooper <tbody>
22*132f818dSEnji Cooper <tr id="projectrow">
23*132f818dSEnji Cooper  <td id="projectalign">
24*132f818dSEnji Cooper   <div id="projectname">Lutok<span id="projectnumber">&#160;0.6.2</span>
25*132f818dSEnji Cooper   </div>
26*132f818dSEnji Cooper  </td>
27*132f818dSEnji Cooper </tr>
28*132f818dSEnji Cooper </tbody>
29*132f818dSEnji Cooper</table>
30*132f818dSEnji Cooper</div>
31*132f818dSEnji Cooper<!-- end header part -->
32*132f818dSEnji Cooper<!-- Generated by Doxygen 1.9.6 -->
33*132f818dSEnji Cooper<script type="text/javascript">
34*132f818dSEnji Cooper/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
35*132f818dSEnji Coopervar searchBox = new SearchBox("searchBox", "search/",'.html');
36*132f818dSEnji Cooper/* @license-end */
37*132f818dSEnji Cooper</script>
38*132f818dSEnji Cooper<script type="text/javascript" src="menudata.js"></script>
39*132f818dSEnji Cooper<script type="text/javascript" src="menu.js"></script>
40*132f818dSEnji Cooper<script type="text/javascript">
41*132f818dSEnji Cooper/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
42*132f818dSEnji Cooper$(function() {
43*132f818dSEnji Cooper  initMenu('',true,false,'search.php','Search');
44*132f818dSEnji Cooper  $(document).ready(function() { init_search(); });
45*132f818dSEnji Cooper});
46*132f818dSEnji Cooper/* @license-end */
47*132f818dSEnji Cooper</script>
48*132f818dSEnji Cooper<div id="main-nav"></div>
49*132f818dSEnji Cooper<!-- window showing the filter options -->
50*132f818dSEnji Cooper<div id="MSearchSelectWindow"
51*132f818dSEnji Cooper     onmouseover="return searchBox.OnSearchSelectShow()"
52*132f818dSEnji Cooper     onmouseout="return searchBox.OnSearchSelectHide()"
53*132f818dSEnji Cooper     onkeydown="return searchBox.OnSearchSelectKey(event)">
54*132f818dSEnji Cooper</div>
55*132f818dSEnji Cooper
56*132f818dSEnji Cooper<!-- iframe showing the search results (closed by default) -->
57*132f818dSEnji Cooper<div id="MSearchResultsWindow">
58*132f818dSEnji Cooper<div id="MSearchResults">
59*132f818dSEnji Cooper<div class="SRPage">
60*132f818dSEnji Cooper<div id="SRIndex">
61*132f818dSEnji Cooper<div id="SRResults"></div>
62*132f818dSEnji Cooper<div class="SRStatus" id="Loading">Loading...</div>
63*132f818dSEnji Cooper<div class="SRStatus" id="Searching">Searching...</div>
64*132f818dSEnji Cooper<div class="SRStatus" id="NoMatches">No Matches</div>
65*132f818dSEnji Cooper</div>
66*132f818dSEnji Cooper</div>
67*132f818dSEnji Cooper</div>
68*132f818dSEnji Cooper</div>
69*132f818dSEnji Cooper
70*132f818dSEnji Cooper<div id="nav-path" class="navpath">
71*132f818dSEnji Cooper  <ul>
72*132f818dSEnji Cooper<li class="navelem"><b>lutok</b></li><li class="navelem"><a class="el" href="a00883.html">state_c_gate</a></li>  </ul>
73*132f818dSEnji Cooper</div>
74*132f818dSEnji Cooper</div><!-- top -->
75*132f818dSEnji Cooper<div class="header">
76*132f818dSEnji Cooper  <div class="summary">
77*132f818dSEnji Cooper<a href="#pub-methods">Public Member Functions</a> &#124;
78*132f818dSEnji Cooper<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
79*132f818dSEnji Cooper<a href="#pri-attribs">Private Attributes</a> &#124;
80*132f818dSEnji Cooper<a href="a00880.html">List of all members</a>  </div>
81*132f818dSEnji Cooper  <div class="headertitle"><div class="title">lutok::state_c_gate Class Reference</div></div>
82*132f818dSEnji Cooper</div><!--header-->
83*132f818dSEnji Cooper<div class="contents">
84*132f818dSEnji Cooper
85*132f818dSEnji Cooper<p>Gateway to the raw C state of Lua.
86*132f818dSEnji Cooper <a href="a00883.html#details">More...</a></p>
87*132f818dSEnji Cooper
88*132f818dSEnji Cooper<p><code>#include &lt;<a class="el" href="a00032_source.html">c_gate.hpp</a>&gt;</code></p>
89*132f818dSEnji Cooper<table class="memberdecls">
90*132f818dSEnji Cooper<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
91*132f818dSEnji CooperPublic Member Functions</h2></td></tr>
92*132f818dSEnji Cooper<tr class="memitem:a45cf8c049b489118bb6ed174fe834cbf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00883.html#a45cf8c049b489118bb6ed174fe834cbf">state_c_gate</a> (<a class="el" href="a00919.html">state</a> &amp;)</td></tr>
93*132f818dSEnji Cooper<tr class="memdesc:a45cf8c049b489118bb6ed174fe834cbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new gateway to an existing C++ Lua state.  <br /></td></tr>
94*132f818dSEnji Cooper<tr class="separator:a45cf8c049b489118bb6ed174fe834cbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
95*132f818dSEnji Cooper<tr class="memitem:a8f86776a8758c2ae3f1ef280356230b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00883.html#a8f86776a8758c2ae3f1ef280356230b8">~state_c_gate</a> (void)</td></tr>
96*132f818dSEnji Cooper<tr class="memdesc:a8f86776a8758c2ae3f1ef280356230b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <br /></td></tr>
97*132f818dSEnji Cooper<tr class="separator:a8f86776a8758c2ae3f1ef280356230b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
98*132f818dSEnji Cooper<tr class="memitem:a9ca464b39c2f2ee1326590893d12aeba"><td class="memItemLeft" align="right" valign="top">lua_State *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00883.html#a9ca464b39c2f2ee1326590893d12aeba">c_state</a> (void)</td></tr>
99*132f818dSEnji Cooper<tr class="memdesc:a9ca464b39c2f2ee1326590893d12aeba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the C native Lua state.  <br /></td></tr>
100*132f818dSEnji Cooper<tr class="separator:a9ca464b39c2f2ee1326590893d12aeba"><td class="memSeparator" colspan="2">&#160;</td></tr>
101*132f818dSEnji Cooper</table><table class="memberdecls">
102*132f818dSEnji Cooper<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
103*132f818dSEnji CooperStatic Public Member Functions</h2></td></tr>
104*132f818dSEnji Cooper<tr class="memitem:a6a9658d0088fe47855e2d081ce172f97"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00919.html">state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00883.html#a6a9658d0088fe47855e2d081ce172f97">connect</a> (lua_State *)</td></tr>
105*132f818dSEnji Cooper<tr class="memdesc:a6a9658d0088fe47855e2d081ce172f97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a C++ state for a C Lua state.  <br /></td></tr>
106*132f818dSEnji Cooper<tr class="separator:a6a9658d0088fe47855e2d081ce172f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
107*132f818dSEnji Cooper</table><table class="memberdecls">
108*132f818dSEnji Cooper<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
109*132f818dSEnji CooperPrivate Attributes</h2></td></tr>
110*132f818dSEnji Cooper<tr class="memitem:a51083d09eb4ba2ef98e169d25f3916f4"><td class="memItemLeft" align="right" valign="top"><a id="a51083d09eb4ba2ef98e169d25f3916f4" name="a51083d09eb4ba2ef98e169d25f3916f4"></a>
111*132f818dSEnji Cooper<a class="el" href="a00919.html">state</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>_state</b></td></tr>
112*132f818dSEnji Cooper<tr class="memdesc:a51083d09eb4ba2ef98e169d25f3916f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The C++ state that this class wraps. <br /></td></tr>
113*132f818dSEnji Cooper<tr class="separator:a51083d09eb4ba2ef98e169d25f3916f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
114*132f818dSEnji Cooper</table>
115*132f818dSEnji Cooper<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
116*132f818dSEnji Cooper<div class="textblock"><p>Gateway to the raw C state of Lua. </p>
117*132f818dSEnji Cooper<p>This class provides a mechanism to muck with the internals of the state wrapper class. Client code may wish to do so if Lutok is missing some features of the performance of Lutok in a particular situation is not reasonable.</p>
118*132f818dSEnji Cooper<dl class="section warning"><dt>Warning</dt><dd>The use of this class is discouraged. By using this class, you are entering the world of unsafety. Anything you do through the objects exposed through this class will not be controlled by RAII patterns not validated in any other way, so you can end up corrupting the Lua state and later get crashes on otherwise perfectly-valid C++ code. </dd></dl>
119*132f818dSEnji Cooper</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
120*132f818dSEnji Cooper<a id="a45cf8c049b489118bb6ed174fe834cbf" name="a45cf8c049b489118bb6ed174fe834cbf"></a>
121*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a45cf8c049b489118bb6ed174fe834cbf">&#9670;&#160;</a></span>state_c_gate()</h2>
122*132f818dSEnji Cooper
123*132f818dSEnji Cooper<div class="memitem">
124*132f818dSEnji Cooper<div class="memproto">
125*132f818dSEnji Cooper      <table class="memname">
126*132f818dSEnji Cooper        <tr>
127*132f818dSEnji Cooper          <td class="memname">lutok::state_c_gate::state_c_gate </td>
128*132f818dSEnji Cooper          <td>(</td>
129*132f818dSEnji Cooper          <td class="paramtype"><a class="el" href="a00919.html">state</a> &amp;&#160;</td>
130*132f818dSEnji Cooper          <td class="paramname"><em>state_</em></td><td>)</td>
131*132f818dSEnji Cooper          <td></td>
132*132f818dSEnji Cooper        </tr>
133*132f818dSEnji Cooper      </table>
134*132f818dSEnji Cooper</div><div class="memdoc">
135*132f818dSEnji Cooper
136*132f818dSEnji Cooper<p>Creates a new gateway to an existing C++ Lua state. </p>
137*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd>
138*132f818dSEnji Cooper  <table class="params">
139*132f818dSEnji Cooper    <tr><td class="paramname">state_</td><td>The state to connect to. This object must remain alive while the newly-constructed <a class="el" href="a00883.html" title="Gateway to the raw C state of Lua.">state_c_gate</a> is alive. </td></tr>
140*132f818dSEnji Cooper  </table>
141*132f818dSEnji Cooper  </dd>
142*132f818dSEnji Cooper</dl>
143*132f818dSEnji Cooper
144*132f818dSEnji Cooper</div>
145*132f818dSEnji Cooper</div>
146*132f818dSEnji Cooper<a id="a8f86776a8758c2ae3f1ef280356230b8" name="a8f86776a8758c2ae3f1ef280356230b8"></a>
147*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a8f86776a8758c2ae3f1ef280356230b8">&#9670;&#160;</a></span>~state_c_gate()</h2>
148*132f818dSEnji Cooper
149*132f818dSEnji Cooper<div class="memitem">
150*132f818dSEnji Cooper<div class="memproto">
151*132f818dSEnji Cooper      <table class="memname">
152*132f818dSEnji Cooper        <tr>
153*132f818dSEnji Cooper          <td class="memname">lutok::state_c_gate::~state_c_gate </td>
154*132f818dSEnji Cooper          <td>(</td>
155*132f818dSEnji Cooper          <td class="paramtype">void&#160;</td>
156*132f818dSEnji Cooper          <td class="paramname"></td><td>)</td>
157*132f818dSEnji Cooper          <td></td>
158*132f818dSEnji Cooper        </tr>
159*132f818dSEnji Cooper      </table>
160*132f818dSEnji Cooper</div><div class="memdoc">
161*132f818dSEnji Cooper
162*132f818dSEnji Cooper<p>Destructor. </p>
163*132f818dSEnji Cooper<p>Destroying this object has no implications on the life cycle of the Lua state. Only the corresponding state object controls when the Lua state is closed. </p>
164*132f818dSEnji Cooper
165*132f818dSEnji Cooper</div>
166*132f818dSEnji Cooper</div>
167*132f818dSEnji Cooper<h2 class="groupheader">Member Function Documentation</h2>
168*132f818dSEnji Cooper<a id="a9ca464b39c2f2ee1326590893d12aeba" name="a9ca464b39c2f2ee1326590893d12aeba"></a>
169*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a9ca464b39c2f2ee1326590893d12aeba">&#9670;&#160;</a></span>c_state()</h2>
170*132f818dSEnji Cooper
171*132f818dSEnji Cooper<div class="memitem">
172*132f818dSEnji Cooper<div class="memproto">
173*132f818dSEnji Cooper      <table class="memname">
174*132f818dSEnji Cooper        <tr>
175*132f818dSEnji Cooper          <td class="memname">lua_State * lutok::state_c_gate::c_state </td>
176*132f818dSEnji Cooper          <td>(</td>
177*132f818dSEnji Cooper          <td class="paramtype">void&#160;</td>
178*132f818dSEnji Cooper          <td class="paramname"></td><td>)</td>
179*132f818dSEnji Cooper          <td></td>
180*132f818dSEnji Cooper        </tr>
181*132f818dSEnji Cooper      </table>
182*132f818dSEnji Cooper</div><div class="memdoc">
183*132f818dSEnji Cooper
184*132f818dSEnji Cooper<p>Returns the C native Lua state. </p>
185*132f818dSEnji Cooper<dl class="section return"><dt>Returns</dt><dd>A native lua_State object holding the Lua C API state. </dd></dl>
186*132f818dSEnji Cooper
187*132f818dSEnji Cooper</div>
188*132f818dSEnji Cooper</div>
189*132f818dSEnji Cooper<a id="a6a9658d0088fe47855e2d081ce172f97" name="a6a9658d0088fe47855e2d081ce172f97"></a>
190*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a6a9658d0088fe47855e2d081ce172f97">&#9670;&#160;</a></span>connect()</h2>
191*132f818dSEnji Cooper
192*132f818dSEnji Cooper<div class="memitem">
193*132f818dSEnji Cooper<div class="memproto">
194*132f818dSEnji Cooper<table class="mlabels">
195*132f818dSEnji Cooper  <tr>
196*132f818dSEnji Cooper  <td class="mlabels-left">
197*132f818dSEnji Cooper      <table class="memname">
198*132f818dSEnji Cooper        <tr>
199*132f818dSEnji Cooper          <td class="memname"><a class="el" href="a00919.html">lutok::state</a> lutok::state_c_gate::connect </td>
200*132f818dSEnji Cooper          <td>(</td>
201*132f818dSEnji Cooper          <td class="paramtype">lua_State *&#160;</td>
202*132f818dSEnji Cooper          <td class="paramname"><em>raw_state</em></td><td>)</td>
203*132f818dSEnji Cooper          <td></td>
204*132f818dSEnji Cooper        </tr>
205*132f818dSEnji Cooper      </table>
206*132f818dSEnji Cooper  </td>
207*132f818dSEnji Cooper  <td class="mlabels-right">
208*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">static</span></span>  </td>
209*132f818dSEnji Cooper  </tr>
210*132f818dSEnji Cooper</table>
211*132f818dSEnji Cooper</div><div class="memdoc">
212*132f818dSEnji Cooper
213*132f818dSEnji Cooper<p>Creates a C++ state for a C Lua state. </p>
214*132f818dSEnji Cooper<dl class="section warning"><dt>Warning</dt><dd>The created state object does NOT own the C state. You must take care to properly destroy the input lua_State when you are done with it to not leak resources.</dd></dl>
215*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd>
216*132f818dSEnji Cooper  <table class="params">
217*132f818dSEnji Cooper    <tr><td class="paramname">raw_state</td><td>The raw state to wrap temporarily.</td></tr>
218*132f818dSEnji Cooper  </table>
219*132f818dSEnji Cooper  </dd>
220*132f818dSEnji Cooper</dl>
221*132f818dSEnji Cooper<dl class="section return"><dt>Returns</dt><dd>The wrapped state without strong ownership on the input state. </dd></dl>
222*132f818dSEnji Cooper
223*132f818dSEnji Cooper</div>
224*132f818dSEnji Cooper</div>
225*132f818dSEnji Cooper<hr/>The documentation for this class was generated from the following files:<ul>
226*132f818dSEnji Cooper<li><a class="el" href="a00032_source.html">c_gate.hpp</a></li>
227*132f818dSEnji Cooper<li>c_gate.cpp</li>
228*132f818dSEnji Cooper</ul>
229*132f818dSEnji Cooper</div><!-- contents -->
230*132f818dSEnji Cooper<!-- start footer part -->
231*132f818dSEnji Cooper<hr class="footer"/><address class="footer"><small>
232*132f818dSEnji CooperGenerated 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.6
233*132f818dSEnji Cooper</small></address>
234*132f818dSEnji Cooper</body>
235*132f818dSEnji Cooper</html>
236