Move doc/ to documentation/api/
[project/luci.git] / documentation / api / modules / nixio.README.html
diff --git a/documentation/api/modules/nixio.README.html b/documentation/api/modules/nixio.README.html
new file mode 100644 (file)
index 0000000..94182a0
--- /dev/null
@@ -0,0 +1,342 @@
+<!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.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.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</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>
+               <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><strong>nixio.README</strong></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>nixio.README</code></h1>
+
+<p>
+ General Information.</p>
+
+
+
+
+
+
+
+
+
+
+<h2>Tables</h2>
+<table class="table_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#Errorhandling">Errorhandling</a></td>
+       <td class="summary">
+ General error handling information.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Functions">Functions</a></td>
+       <td class="summary">
+ Function conventions.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Platforms">Platforms</a></td>
+       <td class="summary">
+ Platform information.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLS-Crypto">TLS-Crypto</a></td>
+       <td class="summary">
+ Cryptography and TLS libraries.</td>
+       </tr>
+
+</table>
+
+
+
+<br/>
+<br/>
+
+
+
+
+<h2><a name="tables"></a>Tables</h2>
+<dl class="table">
+
+<dt><a name="Errorhandling"></a><strong>Errorhandling</strong></dt>
+<dd>
+ General error handling information. 
+ <ul> 
+ <li> Most of the functions available in this library may fail. If any error 
+ occurs the function returns <strong>nil or false</strong>, an error code 
+ (usually errno) and an additional error message text (if avaialable).</li> 
+ <li>At the moment false is only returned when a non-blocking I/O function 
+ fails with EAGAIN, EWOULDBLOCK or WSAEWOULDBLOCK for any others nil is 
+ returned as first parameter. Therefore you can use false to write portable 
+ non-blocking I/O applications.</li> 
+ <li>Note that the function documentation does only mention the return values 
+ in case of a successful operation.</li>  
+ <li>You can find a table of common error numbers and other useful constants 
+ like signal numbers in <strong>nixio.const</strong> e.g. nixio.const.EINVAL, 
+ nixio.const.SIGTERM, etc. For portability there is a second error constant 
+ table <strong>nixio.const_sock</strong> for socket error codes. This might 
+ be important if you are dealing with Windows applications, on POSIX however 
+ const_sock is just an alias for const.</li> 
+ <li>With some exceptions - which are explicitely stated in the function 
+ documentation - all blocking functions are signal-protected and will not fail 
+ with EINTR.</li> 
+ <li>On POSIX the SIGPIPE signal will be set to ignore upon initialization. 
+ You should restore the default behaviour or set a custom signal handler 
+ in your program after loading nixio if you need this behaviour.</li> 
+ </ul>
+
+
+
+</dd>
+
+
+<dt><a name="Functions"></a><strong>Functions</strong></dt>
+<dd>
+ Function conventions. 
+ <br />In general all functions are namend and behave like their POSIX API 
+ counterparts - where applicable - applying the following rules: 
+ <ul> 
+ <li>Functions should be named like the underlying POSIX API function ommiting 
+ prefixes or suffixes - especially when placed in an object-context ( 
+ lockf -> File:lock, fsync -> File:sync, dup2 -> dup, ...)</li> 
+ <li>If you are unclear about the behaviour of a function you should consult 
+ your OS API documentation (e.g. the manpages).</li> 
+ <li>If the name is significantly different from the POSIX-function, the 
+ underlying function(s) are stated in the documentation.</li> 
+ <li>Parameters should reflect those of the C-API, buffer length arguments and  
+ by-reference parameters should be ommitted for pratical purposes.</li> 
+ <li>If a C function accepts a bitfield as parameter, it should be translated 
+ into lower case string flags representing the flags if the bitfield is the  
+ last parameter and also ommiting prefixes or suffixes. (e.g.  waitpid 
+ (pid, &s, WNOHANG | WUNTRACED) -> waitpid(pid, "nohang", "untraced"),  
+ getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) -> 
+ Socket:getopt("socket", "reuseaddr"), etc.) </li> 
+ <li>If it is not applicable to provide a string representation of the 
+ bitfield a bitfield generator helper is provided. It is named FUNCTION_flags. 
+ (open("/tmp/test", O_RDONLY | O_NONBLOCK) -> open("/tmp/test", open_flags( 
+ "rdonly", "nonblock")))</li>   
+ </ul>
+
+
+
+</dd>
+
+
+<dt><a name="Platforms"></a><strong>Platforms</strong></dt>
+<dd>
+ Platform information. 
+ <ul> 
+ <li>The minimum platform requirements are a decent POSIX 2001 support. 
+ Builds are more or less tested on Linux, Solaris and FreeBSD. Builds for 
+ Windows XP SP1 and later can be compiled with MinGW either from Windows 
+ itself or using the MinGW cross-compiler. Earlier versions of Windows are not 
+ supported.</li> 
+ <li>In general all functions which don't have any remarks  
+ in their documentation are available on all platforms.</li> 
+ <li>Functions with a (POSIX), (Linux) or similar prefix are only available 
+ on these specific platforms. Same appplies to parameters of functions 
+ with a similar suffix.</li> 
+ <li>Some functions might have limitations on some platforms. This should 
+ be stated in the documentation. Please also consult your OS API  
+ documentation.</li>    
+ </ul>
+
+
+
+</dd>
+
+
+<dt><a name="TLS-Crypto"></a><strong>TLS-Crypto</strong></dt>
+<dd>
+ Cryptography and TLS libraries. 
+ <ul> 
+ <li>Currently 3 underlying cryptography libraries are supported: openssl, 
+ cyassl and axTLS. The name of the library in use is written to  
+ <strong>nixio.tls_provider</strong></li> 
+ <li>You should whenever possible use openssl or cyassl as axTLS has only  
+ limited support. It does not provide support for non-blocking sockets and 
+ is probably less audited than the other ones.</li> 
+ <li>As the supported Windows versions are not suitable for embedded devices 
+ axTLS is at the moment not supported on Windows.</li>   
+ </ul>
+
+
+
+</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>