Sophie

Sophie

distrib > Mageia > 4 > i586 > by-pkgid > 07ec4e1006689824c37b6ae5b69626c7 > files > 69

ocsigenserver-doc-2.2.0-5.mga4.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="Authbasic.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of class methods" rel=Appendix href="index_methods.html">
<link title="Index of classes" rel=Appendix href="index_classes.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Ocsigen_cache" rel="Chapter" href="Ocsigen_cache.html">
<link title="Ocsigen_lib_base" rel="Chapter" href="Ocsigen_lib_base.html">
<link title="Ocsigen_lib" rel="Chapter" href="Ocsigen_lib.html">
<link title="Ocsigen_config" rel="Chapter" href="Ocsigen_config.html">
<link title="Ocsigen_getcommandline" rel="Chapter" href="Ocsigen_getcommandline.html">
<link title="Ocsigen_messages" rel="Chapter" href="Ocsigen_messages.html">
<link title="Ocsigen_stream" rel="Chapter" href="Ocsigen_stream.html">
<link title="Ocsigen_loader" rel="Chapter" href="Ocsigen_loader.html">
<link title="Polytables" rel="Chapter" href="Polytables.html">
<link title="Http_headers" rel="Chapter" href="Http_headers.html">
<link title="Ocsigen_http_frame" rel="Chapter" href="Ocsigen_http_frame.html">
<link title="Ocsigen_headers" rel="Chapter" href="Ocsigen_headers.html">
<link title="Framepp" rel="Chapter" href="Framepp.html">
<link title="Ocsigen_http_com" rel="Chapter" href="Ocsigen_http_com.html">
<link title="Ocsigen_charset_mime" rel="Chapter" href="Ocsigen_charset_mime.html">
<link title="Ocsigen_senders" rel="Chapter" href="Ocsigen_senders.html">
<link title="Ocsigen_cookies" rel="Chapter" href="Ocsigen_cookies.html">
<link title="Ocsigen_extensions" rel="Chapter" href="Ocsigen_extensions.html">
<link title="Ocsigen_parseconfig" rel="Chapter" href="Ocsigen_parseconfig.html">
<link title="Ocsigen_http_client" rel="Chapter" href="Ocsigen_http_client.html">
<link title="Ocsigen_local_files" rel="Chapter" href="Ocsigen_local_files.html">
<link title="Ocsigen_server" rel="Chapter" href="Ocsigen_server.html">
<link title="Ocsigen_comet" rel="Chapter" href="Ocsigen_comet.html">
<link title="Accesscontrol" rel="Chapter" href="Accesscontrol.html">
<link title="Authbasic" rel="Chapter" href="Authbasic.html">
<link title="Ocsipersist" rel="Chapter" href="Ocsipersist.html"><link title="Persistent references" rel="Section" href="#2_Persistentreferences">
<link title="Persistent tables" rel="Section" href="#2_Persistenttables">
<title>Ocsipersist</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Authbasic.html" title="Authbasic">Previous</a>
&nbsp;<a class="up" href="index.html" title="Index">Up</a>
&nbsp;</div>
<h1>Module <a href="type_Ocsipersist.html">Ocsipersist</a></h1>

<pre><span class="keyword">module</span> Ocsipersist: <code class="code">sig</code> <a href="Ocsipersist.html">..</a> <code class="code">end</code></pre><div class="info module top">
Persistent data on hard disk.<br>
</div>
<hr width="100%">
<br>
There are currently two implementations of this module,
   one using a DBM database, and the other using SQLITE.
   Link the one your want with your program.<br>
<br>
<h2 id="2_Persistentreferences">Persistent references</h2><br>
<br>
When launching the program, if the value exists on hard disk,
    it is loaded, otherwise it is initialised to the default value<br>

<pre><span id="TYPEt"><span class="keyword">type</span> <code class="type">'a</code> t</span> </pre>
<div class="info ">
Type of persistent data<br>
</div>


<pre><span id="TYPEstore"><span class="keyword">type</span> <code class="type"></code>store</span> </pre>
<div class="info ">
Data are divided into stores.
   Create one store for your project, where you will save all your data.<br>
</div>


<pre><span id="VALopen_store"><span class="keyword">val</span> open_store</span> : <code class="type">string -> <a href="Ocsipersist.html#TYPEstore">store</a></code></pre><div class="info ">
Open a store (and create it if it does not exist)<br>
</div>

<pre><span id="VALmake_persistent"><span class="keyword">val</span> make_persistent</span> : <code class="type">store:<a href="Ocsipersist.html#TYPEstore">store</a> -><br>       name:string -> default:'a -> 'a <a href="Ocsipersist.html#TYPEt">t</a> Lwt.t</code></pre><div class="info ">
<code class="code">make_persistent store name default</code> find a persistent value
    named <code class="code">name</code> in store <code class="code">store</code>
    from database, or create it with the default value <code class="code">default</code> if it
    does not exist.<br>
</div>

<pre><span id="VALmake_persistent_lazy"><span class="keyword">val</span> make_persistent_lazy</span> : <code class="type">store:<a href="Ocsipersist.html#TYPEstore">store</a> -><br>       name:string -> default:(unit -> 'a) -> 'a <a href="Ocsipersist.html#TYPEt">t</a> Lwt.t</code></pre><div class="info ">
Same as make_persistent but the default value is evaluated only
    if needed<br>
</div>

<pre><span id="VALget"><span class="keyword">val</span> get</span> : <code class="type">'a <a href="Ocsipersist.html#TYPEt">t</a> -> 'a Lwt.t</code></pre><div class="info ">
<code class="code">get pv</code> gives the value of <code class="code">pv</code><br>
</div>

<pre><span id="VALset"><span class="keyword">val</span> set</span> : <code class="type">'a <a href="Ocsipersist.html#TYPEt">t</a> -> 'a -> unit Lwt.t</code></pre><div class="info ">
<code class="code">set pv value</code> sets a persistent value <code class="code">pv</code> to <code class="code">value</code><br>
</div>
<br>
<h2 id="2_Persistenttables">Persistent tables</h2><br>

<pre><span id="TYPEtable"><span class="keyword">type</span> <code class="type">'value</code> table</span> </pre>
<div class="info ">
Type of persistent table<br>
</div>


<pre><span id="VALtable_name"><span class="keyword">val</span> table_name</span> : <code class="type">'value <a href="Ocsipersist.html#TYPEtable">table</a> -> string Lwt.t</code></pre><div class="info ">
returns the name of the table<br>
</div>

<pre><span id="VALopen_table"><span class="keyword">val</span> open_table</span> : <code class="type">string -> 'value <a href="Ocsipersist.html#TYPEtable">table</a></code></pre><div class="info ">
Open a table (and create it if it does not exist)<br>
</div>

<pre><span id="VALfind"><span class="keyword">val</span> find</span> : <code class="type">'value <a href="Ocsipersist.html#TYPEtable">table</a> -> string -> 'value Lwt.t</code></pre><div class="info ">
<code class="code">find table key</code> gives the value associated to <code class="code">key</code>.
  Fails with <code class="code">Not_found</code> if not found.<br>
</div>

<pre><span id="VALadd"><span class="keyword">val</span> add</span> : <code class="type">'value <a href="Ocsipersist.html#TYPEtable">table</a> -> string -> 'value -> unit Lwt.t</code></pre><div class="info ">
<code class="code">add table key value</code> associates <code class="code">value</code> to <code class="code">key</code>.
   If the database already contains data associated with <code class="code">key</code>,
   that data is discarded and silently replaced by the new data.<br>
</div>

<pre><span id="VALreplace_if_exists"><span class="keyword">val</span> replace_if_exists</span> : <code class="type">'value <a href="Ocsipersist.html#TYPEtable">table</a> -> string -> 'value -> unit Lwt.t</code></pre><div class="info ">
<code class="code">replace_if_exists table key value</code>
   associates <code class="code">value</code> to <code class="code">key</code> only if <code class="code">key</code> is already bound.
   If the database does not contain any data associated with <code class="code">key</code>,
   fails with <code class="code">Not_found</code>.<br>
</div>

<pre><span id="VALremove"><span class="keyword">val</span> remove</span> : <code class="type">'value <a href="Ocsipersist.html#TYPEtable">table</a> -> string -> unit Lwt.t</code></pre><div class="info ">
<code class="code">remove table key</code> removes the entry in the table if it exists<br>
</div>

<pre><span id="VALlength"><span class="keyword">val</span> length</span> : <code class="type">'value <a href="Ocsipersist.html#TYPEtable">table</a> -> int Lwt.t</code></pre><div class="info ">
Size of a table.<br>
</div>

<pre><span id="VALiter_step"><span class="keyword">val</span> iter_step</span> : <code class="type">(string -> 'a -> unit Lwt.t) -> 'a <a href="Ocsipersist.html#TYPEtable">table</a> -> unit Lwt.t</code></pre><div class="info ">
Important warning: this iterator may not iter on all data of the table
    if another thread is modifying it in the same time. Nonetheless, it should
    not miss more than a very few data from time to time, except if the table
    is very old (at least 9 223 372 036 854 775 807 insertions).<br>
</div>

<pre><span id="VALiter_table"><span class="keyword">val</span> iter_table</span> : <code class="type">(string -> 'a -> unit Lwt.t) -> 'a <a href="Ocsipersist.html#TYPEtable">table</a> -> unit Lwt.t</code></pre><div class="info ">
Legacy interface for iter_step<br>
</div>

<pre><span id="VALfold_step"><span class="keyword">val</span> fold_step</span> : <code class="type">(string -> 'a -> 'b -> 'b Lwt.t) -> 'a <a href="Ocsipersist.html#TYPEtable">table</a> -> 'b -> 'b Lwt.t</code></pre><div class="info ">
Important warning: this iterator may not iter on all data of the table
    if another thread is modifying it in the same time. Nonetheless, it should
    not miss more than a very few data from time to time, except if the table
    is very old (at least 9 223 372 036 854 775 807 insertions).<br>
</div>

<pre><span id="VALfold_table"><span class="keyword">val</span> fold_table</span> : <code class="type">(string -> 'a -> 'b -> 'b Lwt.t) -> 'a <a href="Ocsipersist.html#TYPEtable">table</a> -> 'b -> 'b Lwt.t</code></pre><div class="info ">
Legacy interface for fold_step<br>
</div>
</body></html>