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: operations.hpp File 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"> 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&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&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><!-- top --> 71<div class="header"> 72 <div class="summary"> 73<a href="#func-members">Functions</a> </div> 74 <div class="headertitle"><div class="title">operations.hpp File Reference</div></div> 75</div><!--header--> 76<div class="contents"> 77 78<p>Extra generic functions to interact with Lua. 79<a href="#details">More...</a></p> 80<div class="textblock"><code>#include <map></code><br /> 81<code>#include <string></code><br /> 82<code>#include <vector></code><br /> 83<code>#include <lutok/state.hpp></code><br /> 84</div> 85<p><a href="a00038_source.html">Go to the source code of this file.</a></p> 86<table class="memberdecls"> 87<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a> 88Functions</h2></td></tr> 89<tr class="memitem:afc4214923cf72dbb861cd8bae8cc2d96"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#afc4214923cf72dbb861cd8bae8cc2d96">lutok::create_module</a> (state &, const std::string &, const std::map< std::string, cxx_function > &)</td></tr> 90<tr class="memdesc:afc4214923cf72dbb861cd8bae8cc2d96"><td class="mdescLeft"> </td><td class="mdescRight">Creates a module: i.e. <br /></td></tr> 91<tr class="separator:afc4214923cf72dbb861cd8bae8cc2d96"><td class="memSeparator" colspan="2"> </td></tr> 92<tr class="memitem:a587dc527bb2dd12e9aab11beae605051"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a587dc527bb2dd12e9aab11beae605051">lutok::do_file</a> (state &, const std::string &, const int, const int, const int)</td></tr> 93<tr class="memdesc:a587dc527bb2dd12e9aab11beae605051"><td class="mdescLeft"> </td><td class="mdescRight">Loads and processes a Lua file. <br /></td></tr> 94<tr class="separator:a587dc527bb2dd12e9aab11beae605051"><td class="memSeparator" colspan="2"> </td></tr> 95<tr class="memitem:acfcec30028e0795a0a722aa18ee7909d"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#acfcec30028e0795a0a722aa18ee7909d">lutok::do_string</a> (state &, const std::string &, const int, const int, const int)</td></tr> 96<tr class="memdesc:acfcec30028e0795a0a722aa18ee7909d"><td class="mdescLeft"> </td><td class="mdescRight">Processes a Lua script. <br /></td></tr> 97<tr class="separator:acfcec30028e0795a0a722aa18ee7909d"><td class="memSeparator" colspan="2"> </td></tr> 98<tr class="memitem:a9d58b8708faaae18051c4ef4b707c84b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a9d58b8708faaae18051c4ef4b707c84b">lutok::eval</a> (state &, const std::string &, const int)</td></tr> 99<tr class="memdesc:a9d58b8708faaae18051c4ef4b707c84b"><td class="mdescLeft"> </td><td class="mdescRight">Convenience function to evaluate a Lua expression. <br /></td></tr> 100<tr class="separator:a9d58b8708faaae18051c4ef4b707c84b"><td class="memSeparator" colspan="2"> </td></tr> 101</table> 102<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 103<div class="textblock"><p>Extra generic functions to interact with Lua. </p> 104</div><h2 class="groupheader">Function Documentation</h2> 105<a id="afc4214923cf72dbb861cd8bae8cc2d96" name="afc4214923cf72dbb861cd8bae8cc2d96"></a> 106<h2 class="memtitle"><span class="permalink"><a href="#afc4214923cf72dbb861cd8bae8cc2d96">◆ </a></span>create_module()</h2> 107 108<div class="memitem"> 109<div class="memproto"> 110 <table class="memname"> 111 <tr> 112 <td class="memname">void lutok::create_module </td> 113 <td>(</td> 114 <td class="paramtype"><a class="el" href="a00919.html">state</a> & </td> 115 <td class="paramname"><em>s</em>, </td> 116 </tr> 117 <tr> 118 <td class="paramkey"></td> 119 <td></td> 120 <td class="paramtype">const std::string & </td> 121 <td class="paramname"><em>name</em>, </td> 122 </tr> 123 <tr> 124 <td class="paramkey"></td> 125 <td></td> 126 <td class="paramtype">const std::map< std::string, <a class="el" href="a00029.html#a8c623ca426c30c5fab4df2cb21635f17">cxx_function</a> > & </td> 127 <td class="paramname"><em>members</em> </td> 128 </tr> 129 <tr> 130 <td></td> 131 <td>)</td> 132 <td></td><td></td> 133 </tr> 134 </table> 135</div><div class="memdoc"> 136 137<p>Creates a module: i.e. </p> 138<p>a table with a set of methods in it.</p> 139<dl class="params"><dt>Parameters</dt><dd> 140 <table class="params"> 141 <tr><td class="paramname">s</td><td>The Lua state. </td></tr> 142 <tr><td class="paramname">name</td><td>The name of the module to create. </td></tr> 143 <tr><td class="paramname">members</td><td>The list of member functions to add to the module. </td></tr> 144 </table> 145 </dd> 146</dl> 147 148</div> 149</div> 150<a id="a587dc527bb2dd12e9aab11beae605051" name="a587dc527bb2dd12e9aab11beae605051"></a> 151<h2 class="memtitle"><span class="permalink"><a href="#a587dc527bb2dd12e9aab11beae605051">◆ </a></span>do_file()</h2> 152 153<div class="memitem"> 154<div class="memproto"> 155 <table class="memname"> 156 <tr> 157 <td class="memname">unsigned int lutok::do_file </td> 158 <td>(</td> 159 <td class="paramtype"><a class="el" href="a00919.html">state</a> & </td> 160 <td class="paramname"><em>s</em>, </td> 161 </tr> 162 <tr> 163 <td class="paramkey"></td> 164 <td></td> 165 <td class="paramtype">const std::string & </td> 166 <td class="paramname"><em>file</em>, </td> 167 </tr> 168 <tr> 169 <td class="paramkey"></td> 170 <td></td> 171 <td class="paramtype">const int </td> 172 <td class="paramname"><em>nargs</em>, </td> 173 </tr> 174 <tr> 175 <td class="paramkey"></td> 176 <td></td> 177 <td class="paramtype">const int </td> 178 <td class="paramname"><em>nresults</em>, </td> 179 </tr> 180 <tr> 181 <td class="paramkey"></td> 182 <td></td> 183 <td class="paramtype">const int </td> 184 <td class="paramname"><em>errfunc</em> </td> 185 </tr> 186 <tr> 187 <td></td> 188 <td>)</td> 189 <td></td><td></td> 190 </tr> 191 </table> 192</div><div class="memdoc"> 193 194<p>Loads and processes a Lua file. </p> 195<p>This is a replacement for luaL_dofile but with proper error reporting and stack control.</p> 196<dl class="params"><dt>Parameters</dt><dd> 197 <table class="params"> 198 <tr><td class="paramname">s</td><td>The Lua state. </td></tr> 199 <tr><td class="paramname">file</td><td>The file to load. </td></tr> 200 <tr><td class="paramname">nargs</td><td>The number of arguments on the stack to pass to the file. </td></tr> 201 <tr><td class="paramname">nresults</td><td>The number of results to expect; -1 for any. </td></tr> 202 <tr><td class="paramname">errfunc</td><td>If not 0, index of a function in the stack to act as an error handler.</td></tr> 203 </table> 204 </dd> 205</dl> 206<dl class="section return"><dt>Returns</dt><dd>The number of results left on the stack.</dd></dl> 207<dl class="exception"><dt>Exceptions</dt><dd> 208 <table class="exception"> 209 <tr><td class="paramname">error</td><td>If there is a problem processing the file. </td></tr> 210 </table> 211 </dd> 212</dl> 213 214</div> 215</div> 216<a id="acfcec30028e0795a0a722aa18ee7909d" name="acfcec30028e0795a0a722aa18ee7909d"></a> 217<h2 class="memtitle"><span class="permalink"><a href="#acfcec30028e0795a0a722aa18ee7909d">◆ </a></span>do_string()</h2> 218 219<div class="memitem"> 220<div class="memproto"> 221 <table class="memname"> 222 <tr> 223 <td class="memname">unsigned int lutok::do_string </td> 224 <td>(</td> 225 <td class="paramtype"><a class="el" href="a00919.html">state</a> & </td> 226 <td class="paramname"><em>s</em>, </td> 227 </tr> 228 <tr> 229 <td class="paramkey"></td> 230 <td></td> 231 <td class="paramtype">const std::string & </td> 232 <td class="paramname"><em>str</em>, </td> 233 </tr> 234 <tr> 235 <td class="paramkey"></td> 236 <td></td> 237 <td class="paramtype">const int </td> 238 <td class="paramname"><em>nargs</em>, </td> 239 </tr> 240 <tr> 241 <td class="paramkey"></td> 242 <td></td> 243 <td class="paramtype">const int </td> 244 <td class="paramname"><em>nresults</em>, </td> 245 </tr> 246 <tr> 247 <td class="paramkey"></td> 248 <td></td> 249 <td class="paramtype">const int </td> 250 <td class="paramname"><em>errfunc</em> </td> 251 </tr> 252 <tr> 253 <td></td> 254 <td>)</td> 255 <td></td><td></td> 256 </tr> 257 </table> 258</div><div class="memdoc"> 259 260<p>Processes a Lua script. </p> 261<p>This is a replacement for luaL_dostring but with proper error reporting and stack control.</p> 262<dl class="params"><dt>Parameters</dt><dd> 263 <table class="params"> 264 <tr><td class="paramname">s</td><td>The Lua state. </td></tr> 265 <tr><td class="paramname">str</td><td>The string to process. </td></tr> 266 <tr><td class="paramname">nargs</td><td>The number of arguments on the stack to pass to the chunk. </td></tr> 267 <tr><td class="paramname">nresults</td><td>The number of results to expect; -1 for any. </td></tr> 268 <tr><td class="paramname">errfunc</td><td>If not 0, index of a function in the stack to act as an error handler.</td></tr> 269 </table> 270 </dd> 271</dl> 272<dl class="section return"><dt>Returns</dt><dd>The number of results left on the stack.</dd></dl> 273<dl class="exception"><dt>Exceptions</dt><dd> 274 <table class="exception"> 275 <tr><td class="paramname">error</td><td>If there is a problem processing the string. </td></tr> 276 </table> 277 </dd> 278</dl> 279 280</div> 281</div> 282<a id="a9d58b8708faaae18051c4ef4b707c84b" name="a9d58b8708faaae18051c4ef4b707c84b"></a> 283<h2 class="memtitle"><span class="permalink"><a href="#a9d58b8708faaae18051c4ef4b707c84b">◆ </a></span>eval()</h2> 284 285<div class="memitem"> 286<div class="memproto"> 287 <table class="memname"> 288 <tr> 289 <td class="memname">void lutok::eval </td> 290 <td>(</td> 291 <td class="paramtype"><a class="el" href="a00919.html">state</a> & </td> 292 <td class="paramname"><em>s</em>, </td> 293 </tr> 294 <tr> 295 <td class="paramkey"></td> 296 <td></td> 297 <td class="paramtype">const std::string & </td> 298 <td class="paramname"><em>expression</em>, </td> 299 </tr> 300 <tr> 301 <td class="paramkey"></td> 302 <td></td> 303 <td class="paramtype">const int </td> 304 <td class="paramname"><em>nresults</em> </td> 305 </tr> 306 <tr> 307 <td></td> 308 <td>)</td> 309 <td></td><td></td> 310 </tr> 311 </table> 312</div><div class="memdoc"> 313 314<p>Convenience function to evaluate a Lua expression. </p> 315<dl class="params"><dt>Parameters</dt><dd> 316 <table class="params"> 317 <tr><td class="paramname">s</td><td>The Lua state. </td></tr> 318 <tr><td class="paramname">expression</td><td>The textual expression to evaluate. </td></tr> 319 <tr><td class="paramname">nresults</td><td>The number of results to leave on the stack. Must be positive.</td></tr> 320 </table> 321 </dd> 322</dl> 323<dl class="exception"><dt>Exceptions</dt><dd> 324 <table class="exception"> 325 <tr><td class="paramname">api_error</td><td>If there is a problem evaluating the expression. </td></tr> 326 </table> 327 </dd> 328</dl> 329 330</div> 331</div> 332</div><!-- contents --> 333<!-- start footer part --> 334<hr class="footer"/><address class="footer"><small> 335Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 336</small></address> 337</body> 338</html> 339