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