Regenerate api documentation
[project/luci.git] / documentation / api / modules / luci.util.html
diff --git a/documentation/api/modules/luci.util.html b/documentation/api/modules/luci.util.html
new file mode 100644 (file)
index 0000000..301cfff
--- /dev/null
@@ -0,0 +1,1717 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li><strong>luci.util</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.util</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#append">append</a>&nbsp;(src, ...)</td>
+       <td class="summary">
+Appends numerically indexed tables or single objects to a given table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#bigendian">bigendian</a>&nbsp;()</td>
+       <td class="summary">
+Test whether the current system is operating in big endian mode.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#class">class</a>&nbsp;(base)</td>
+       <td class="summary">
+Create a Class object (Python-style object model).</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#clone">clone</a>&nbsp;(object, deep)</td>
+       <td class="summary">
+Clones the given object and return it's copy.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cmatch">cmatch</a>&nbsp;(str, pattern)</td>
+       <td class="summary">
+Count the occurences of given substring in given string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#combine">combine</a>&nbsp;(tbl1, tbl2, ...)</td>
+       <td class="summary">
+Combines two or more numerically indexed tables and single objects into one table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#contains">contains</a>&nbsp;(table, value)</td>
+       <td class="summary">
+Checks whether the given table contains the given value.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#copcall">copcall</a>&nbsp;(f, ...)</td>
+       <td class="summary">
+This is a coroutine-safe drop-in replacement for Lua's "pcall"-function 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#coxpcall">coxpcall</a>&nbsp;(f, err, ...)</td>
+       <td class="summary">
+This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#dtable">dtable</a>&nbsp;()</td>
+       <td class="summary">
+Create a dynamic table which automatically creates subtables.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#dumptable">dumptable</a>&nbsp;(t, maxdepth)</td>
+       <td class="summary">
+Recursively dumps a table to stdout, useful for testing and debugging.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#exec">exec</a>&nbsp;(command)</td>
+       <td class="summary">
+Execute given commandline and gather stdout.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#execi">execi</a>&nbsp;(command)</td>
+       <td class="summary">
+Return a line-buffered iterator over the output of given command.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#get_bytecode">get_bytecode</a>&nbsp;(val)</td>
+       <td class="summary">
+Return the current runtime bytecode of the given data.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#imatch">imatch</a>&nbsp;(val)</td>
+       <td class="summary">
+Return a matching iterator for the given value.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#instanceof">instanceof</a>&nbsp;(object, class)</td>
+       <td class="summary">
+Test whether the given object is an instance of the given class.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#keys">keys</a>&nbsp;(t)</td>
+       <td class="summary">
+Retrieve all keys of given associative table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#kspairs">kspairs</a>&nbsp;(t)</td>
+       <td class="summary">
+Return a key, value iterator for the given table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#libpath">libpath</a>&nbsp;()</td>
+       <td class="summary">
+Returns the absolute path to LuCI base directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#parse_units">parse_units</a>&nbsp;(ustr)</td>
+       <td class="summary">
+Parse certain units from the given string and return the canonical integer 
+value or 0 if the unit is unknown.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#pcdata">pcdata</a>&nbsp;(value)</td>
+       <td class="summary">
+Create valid XML PCDATA from given string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#perror">perror</a>&nbsp;(obj)</td>
+       <td class="summary">
+Write given object to stderr.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#restore_data">restore_data</a>&nbsp;(str)</td>
+       <td class="summary">
+Restore data previously serialized with serialize_data().</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#serialize_data">serialize_data</a>&nbsp;(val)</td>
+       <td class="summary">
+Recursively serialize given data to lua code, suitable for restoring 
+with loadstring().</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#serialize_json">serialize_json</a>&nbsp;(data, writer)</td>
+       <td class="summary">
+Convert data structure to JSON 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#spairs">spairs</a>&nbsp;(t, f)</td>
+       <td class="summary">
+Return a key, value iterator which returns the values sorted according to 
+the provided callback function.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#split">split</a>&nbsp;(str, pat, max, regex)</td>
+       <td class="summary">
+Splits given string on a defined separator sequence and return a table 
+containing the resulting substrings.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#strip_bytecode">strip_bytecode</a>&nbsp;(code)</td>
+       <td class="summary">
+Strips unnescessary lua bytecode from given string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#striptags">striptags</a>&nbsp;(value)</td>
+       <td class="summary">
+Strip HTML tags from given string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#threadlocal">threadlocal</a>&nbsp;()</td>
+       <td class="summary">
+Create a new or get an already existing thread local store associated with 
+the current active coroutine.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#trim">trim</a>&nbsp;(str)</td>
+       <td class="summary">
+Remove leading and trailing whitespace from given string value.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#ubus">ubus</a>&nbsp;(object, method, values)</td>
+       <td class="summary">
+Issue an ubus call.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#update">update</a>&nbsp;(t, updates)</td>
+       <td class="summary">
+Update values in given table with the values from the second given table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#vspairs">vspairs</a>&nbsp;(t)</td>
+       <td class="summary">
+Return a key, value iterator for the given table.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="append"></a><strong>append</strong>&nbsp;(src, ...)</dt>
+<dd>
+
+Appends numerically indexed tables or single objects to a given table. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Target table
+       </li>
+       
+       <li>
+         ...: Objects to insert
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Target table
+
+
+
+</dd>
+
+
+
+
+<dt><a name="bigendian"></a><strong>bigendian</strong>&nbsp;()</dt>
+<dd>
+
+Test whether the current system is operating in big endian mode. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean value indicating whether system is big endian
+
+
+
+</dd>
+
+
+
+
+<dt><a name="class"></a><strong>class</strong>&nbsp;(base)</dt>
+<dd>
+
+Create a Class object (Python-style object model). 
+The class object can be instantiated by calling itself. 
+Any class functions or shared parameters can be attached to this object. 
+Attaching a table to the class object makes this table shared between 
+all instances of this class. For object parameters use the __init__ function. 
+Classes can inherit member functions and values from a base class. 
+Class can be instantiated by calling them. All parameters will be passed 
+to the __init__ function of this class - if such a function exists. 
+The __init__ function must be used to set any object parameters that are not shared 
+with other objects of this class. Any return values will be ignored.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         base: The base class to inherit from (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+A class object
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#instanceof">
+               instanceof
+       </a>
+       
+       <li><a href="#clone">
+               clone
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="clone"></a><strong>clone</strong>&nbsp;(object, deep)</dt>
+<dd>
+
+Clones the given object and return it's copy. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         object: Table value to clone
+       </li>
+       
+       <li>
+         deep: Boolean indicating whether to do recursive cloning
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Cloned table value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cmatch"></a><strong>cmatch</strong>&nbsp;(str, pattern)</dt>
+<dd>
+
+Count the occurences of given substring in given string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: String to search in
+       </li>
+       
+       <li>
+         pattern: String containing pattern to find
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Number of found occurences
+
+
+
+</dd>
+
+
+
+
+<dt><a name="combine"></a><strong>combine</strong>&nbsp;(tbl1, tbl2, ...)</dt>
+<dd>
+
+Combines two or more numerically indexed tables and single objects into one table. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         tbl1: Table value to combine
+       </li>
+       
+       <li>
+         tbl2: Table value to combine
+       </li>
+       
+       <li>
+         ...: More tables to combine
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table value containing all values of given tables
+
+
+
+</dd>
+
+
+
+
+<dt><a name="contains"></a><strong>contains</strong>&nbsp;(table, value)</dt>
+<dd>
+
+Checks whether the given table contains the given value. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         table: Table value
+       </li>
+       
+       <li>
+         value: Value to search within the given table
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number indicating the first index at which the given value occurs 
+                       within table or false.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="copcall"></a><strong>copcall</strong>&nbsp;(f, ...)</dt>
+<dd>
+
+This is a coroutine-safe drop-in replacement for Lua's "pcall"-function 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         f: Lua function to be called protected
+       </li>
+       
+       <li>
+         ...: Parameters passed to the function
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+A boolean whether the function call succeeded and the returns 
+                               values of the function or the error object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="coxpcall"></a><strong>coxpcall</strong>&nbsp;(f, err, ...)</dt>
+<dd>
+
+This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         f: Lua function to be called protected
+       </li>
+       
+       <li>
+         err: Custom error handler
+       </li>
+       
+       <li>
+         ...: Parameters passed to the function
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+A boolean whether the function call succeeded and the return 
+                               values of either the function or the error handler
+
+
+
+</dd>
+
+
+
+
+<dt><a name="dtable"></a><strong>dtable</strong>&nbsp;()</dt>
+<dd>
+
+Create a dynamic table which automatically creates subtables. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Dynamic Table
+
+
+
+</dd>
+
+
+
+
+<dt><a name="dumptable"></a><strong>dumptable</strong>&nbsp;(t, maxdepth)</dt>
+<dd>
+
+Recursively dumps a table to stdout, useful for testing and debugging. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: Table value to dump
+       </li>
+       
+       <li>
+         maxdepth: Maximum depth
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Always nil
+
+
+
+</dd>
+
+
+
+
+<dt><a name="exec"></a><strong>exec</strong>&nbsp;(command)</dt>
+<dd>
+
+Execute given commandline and gather stdout. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         command: String containing command to execute
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the command's stdout
+
+
+
+</dd>
+
+
+
+
+<dt><a name="execi"></a><strong>execi</strong>&nbsp;(command)</dt>
+<dd>
+
+Return a line-buffered iterator over the output of given command. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         command: String containing the command to execute
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="get_bytecode"></a><strong>get_bytecode</strong>&nbsp;(val)</dt>
+<dd>
+
+Return the current runtime bytecode of the given data. The byte code 
+will be stripped before it is returned.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         val: Value to return as bytecode
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the bytecode of the given data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="imatch"></a><strong>imatch</strong>&nbsp;(val)</dt>
+<dd>
+
+Return a matching iterator for the given value. The iterator will return 
+one token per invocation, the tokens are separated by whitespace. If the 
+input value is a table, it is transformed into a string first. A nil value 
+will result in a valid interator which aborts with the first invocation.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         val: The value to scan (table, string or nil)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Iterator which returns one token per call
+
+
+
+</dd>
+
+
+
+
+<dt><a name="instanceof"></a><strong>instanceof</strong>&nbsp;(object, class)</dt>
+<dd>
+
+Test whether the given object is an instance of the given class. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         object: Object instance
+       </li>
+       
+       <li>
+         class: Class object to test against
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating whether the object is an instance
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#class">
+               class
+       </a>
+       
+       <li><a href="#clone">
+               clone
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="keys"></a><strong>keys</strong>&nbsp;(t)</dt>
+<dd>
+
+Retrieve all keys of given associative table. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: Table to extract keys from
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Sorted table containing the keys
+
+
+
+</dd>
+
+
+
+
+<dt><a name="kspairs"></a><strong>kspairs</strong>&nbsp;(t)</dt>
+<dd>
+
+Return a key, value iterator for the given table. 
+The table pairs are sorted by key.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: The table to iterate
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Function value containing the corresponding iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="libpath"></a><strong>libpath</strong>&nbsp;()</dt>
+<dd>
+
+Returns the absolute path to LuCI base directory. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the directory path
+
+
+
+</dd>
+
+
+
+
+<dt><a name="parse_units"></a><strong>parse_units</strong>&nbsp;(ustr)</dt>
+<dd>
+
+Parse certain units from the given string and return the canonical integer 
+value or 0 if the unit is unknown. Upper- or lower case is irrelevant. 
+Recognized units are: 
+       o "y"   - one year   (60*60*24*366) 
+ o "m" - one month  (60*60*24*31) 
+ o "w" - one week   (60*60*24*7) 
+ o "d" - one day    (60*60*24) 
+ o "h" - one hour       (60*60) 
+ o "min"       - one minute (60) 
+ o "kb"  - one kilobyte (1024) 
+ o "mb"        - one megabyte (1024*1024) 
+ o "gb"        - one gigabyte (1024*1024*1024) 
+ o "kib" - one si kilobyte (1000) 
+ o "mib"       - one si megabyte (1000*1000) 
+ o "gib"       - one si gigabyte (1000*1000*1000)
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ustr: String containing a numerical value with trailing unit
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Number containing the canonical value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="pcdata"></a><strong>pcdata</strong>&nbsp;(value)</dt>
+<dd>
+
+Create valid XML PCDATA from given string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         value: String value containing the data to escape
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the escaped data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="perror"></a><strong>perror</strong>&nbsp;(obj)</dt>
+<dd>
+
+Write given object to stderr. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         obj: Value to write to stderr
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating whether the write operation was successful
+
+
+
+</dd>
+
+
+
+
+<dt><a name="restore_data"></a><strong>restore_data</strong>&nbsp;(str)</dt>
+<dd>
+
+Restore data previously serialized with serialize_data(). 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: String containing the data to restore
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Value containing the restored data structure
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#serialize_data">
+               serialize_data
+       </a>
+       
+       <li><a href="#get_bytecode">
+               get_bytecode
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="serialize_data"></a><strong>serialize_data</strong>&nbsp;(val)</dt>
+<dd>
+
+Recursively serialize given data to lua code, suitable for restoring 
+with loadstring().
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         val: Value containing the data to serialize
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the serialized code
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#restore_data">
+               restore_data
+       </a>
+       
+       <li><a href="#get_bytecode">
+               get_bytecode
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="serialize_json"></a><strong>serialize_json</strong>&nbsp;(data, writer)</dt>
+<dd>
+
+Convert data structure to JSON 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         data: The data to serialize
+       </li>
+       
+       <li>
+         writer: A function to write a chunk of JSON data (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the JSON if called without write callback
+
+
+
+</dd>
+
+
+
+
+<dt><a name="spairs"></a><strong>spairs</strong>&nbsp;(t, f)</dt>
+<dd>
+
+Return a key, value iterator which returns the values sorted according to 
+the provided callback function.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: The table to iterate
+       </li>
+       
+       <li>
+         f: A callback function to decide the order of elements
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Function value containing the corresponding iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="split"></a><strong>split</strong>&nbsp;(str, pat, max, regex)</dt>
+<dd>
+
+Splits given string on a defined separator sequence and return a table 
+containing the resulting substrings. The optional max parameter specifies 
+the number of bytes to process, regardless of the actual length of the given 
+string. The optional last parameter, regex, specifies whether the separator 
+sequence is interpreted as regular expression.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: String value containing the data to split up
+       </li>
+       
+       <li>
+         pat: String with separator pattern (optional, defaults to "\n")
+       </li>
+       
+       <li>
+         max: Maximum times to split (optional)
+       </li>
+       
+       <li>
+         regex: Boolean indicating whether to interpret the separator 
+                                       pattern as regular expression (optional, default is false)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing the resulting substrings
+
+
+
+</dd>
+
+
+
+
+<dt><a name="strip_bytecode"></a><strong>strip_bytecode</strong>&nbsp;(code)</dt>
+<dd>
+
+Strips unnescessary lua bytecode from given string. Information like line 
+numbers and debugging numbers will be discarded. Original version by 
+Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html)
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         code: String value containing the original lua byte code
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the stripped lua byte code
+
+
+
+</dd>
+
+
+
+
+<dt><a name="striptags"></a><strong>striptags</strong>&nbsp;(value)</dt>
+<dd>
+
+Strip HTML tags from given string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         value: String containing the HTML text
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String with HTML tags stripped of
+
+
+
+</dd>
+
+
+
+
+<dt><a name="threadlocal"></a><strong>threadlocal</strong>&nbsp;()</dt>
+<dd>
+
+Create a new or get an already existing thread local store associated with 
+the current active coroutine. A thread local store is private a table object 
+whose values can't be accessed from outside of the running coroutine.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table value representing the corresponding thread local store
+
+
+
+</dd>
+
+
+
+
+<dt><a name="trim"></a><strong>trim</strong>&nbsp;(str)</dt>
+<dd>
+
+Remove leading and trailing whitespace from given string value. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: String value containing whitespace padded data
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value with leading and trailing space removed
+
+
+
+</dd>
+
+
+
+
+<dt><a name="ubus"></a><strong>ubus</strong>&nbsp;(object, method, values)</dt>
+<dd>
+
+Issue an ubus call. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         object: String containing the ubus object to call
+       </li>
+       
+       <li>
+         method: String containing the ubus method to call
+       </li>
+       
+       <li>
+         values: Table containing the values to pass
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containin the ubus result
+
+
+
+</dd>
+
+
+
+
+<dt><a name="update"></a><strong>update</strong>&nbsp;(t, updates)</dt>
+<dd>
+
+Update values in given table with the values from the second given table. 
+Both table are - in fact - merged together.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: Table which should be updated
+       </li>
+       
+       <li>
+         updates: Table containing the values to update
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Always nil
+
+
+
+</dd>
+
+
+
+
+<dt><a name="vspairs"></a><strong>vspairs</strong>&nbsp;(t)</dt>
+<dd>
+
+Return a key, value iterator for the given table. 
+The table pairs are sorted by value.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: The table to iterate
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Function value containing the corresponding iterator
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>