Files
erlang/docs/ecapnp_data.html
2014-05-30 12:58:33 +02:00

163 lines
7.2 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Module ecapnp_data</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc">
</head>
<body bgcolor="white">
<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div>
<hr>
<h1>Module ecapnp_data</h1>
<ul class="index"><li><a href="#description">Description</a></li><li><a href="#types">Data Types</a></li><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul>Data server module.
<p>Copyright © 2013, Andreas Stenius</p>
<p><b>Behaviours:</b> <a href="gen_server.html"><tt>gen_server</tt></a>.</p>
<p><b>Authors:</b> Andreas Stenius (<a href="mailto:[email protected]"><tt>[email protected]</tt></a>).</p>
<h2><a name="description">Description</a></h2><p>Data server module</p>
All objects data is held in a data process, implemented by this
module.
<h2><a name="types">Data Types</a></h2>
<h3 class="typedecl"><a name="type-segment_id">segment_id()</a></h3>
<p><tt>segment_id() = <a href="ecapnp.html#type-segment_id">ecapnp:segment_id()</a></tt></p>
<h2><a name="index">Function Index</a></h2>
<table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#add_ref-2">add_ref/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#alloc-3">alloc/3</a></td><td>Allocate data.</td></tr>
<tr><td valign="top"><a href="#code_change-3">code_change/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#discard_ref-2">discard_ref/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#get_cap-2">get_cap/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#get_cap_idx-2">get_cap_idx/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#get_cap_table-1">get_cap_table/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#get_segment-4">get_segment/4</a></td><td>Read data from segment.</td></tr>
<tr><td valign="top"><a href="#get_segment_size-2">get_segment_size/2</a></td><td>Get size of segment, in words (8 bytes).</td></tr>
<tr><td valign="top"><a href="#get_segments-1">get_segments/1</a></td><td>Get all allocated data from all segments.</td></tr>
<tr><td valign="top"><a href="#handle_call-3">handle_call/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#handle_cast-2">handle_cast/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#handle_info-2">handle_info/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#init-1">init/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#set_cap_table-2">set_cap_table/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#start-1">start/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#start_link-1">start_link/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#stop-1">stop/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#terminate-2">terminate/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#update_segment-3">update_segment/3</a></td><td>Write data to segment.</td></tr>
</table>
<h2><a name="functions">Function Details</a></h2>
<h3 class="function"><a name="add_ref-2">add_ref/2</a></h3>
<div class="spec">
<p><tt>add_ref(Ref, Pid) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="alloc-3">alloc/3</a></h3>
<div class="spec">
<p><tt>alloc(Id::<a href="#type-segment_id">segment_id()</a>, Size::integer(), Pid::pid()) -&gt; {<a href="#type-segment_id">segment_id()</a>, Offset::integer()}</tt><br></p>
</div><p><p>Allocate data.</p>
Preferably from segment id <code>Id</code>, if possible. This will rarely
fail, as new segments are added in case there is not enough free
space left.</p>
<h3 class="function"><a name="code_change-3">code_change/3</a></h3>
<div class="spec">
<p><tt>code_change(OldVsn, State, Extra) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="discard_ref-2">discard_ref/2</a></h3>
<div class="spec">
<p><tt>discard_ref(Ref, Pid) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="get_cap-2">get_cap/2</a></h3>
<div class="spec">
<p><tt>get_cap(Idx, Pid) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="get_cap_idx-2">get_cap_idx/2</a></h3>
<div class="spec">
<p><tt>get_cap_idx(Cap, Pid) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="get_cap_table-1">get_cap_table/1</a></h3>
<div class="spec">
<p><tt>get_cap_table(Pid) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="get_segment-4">get_segment/4</a></h3>
<div class="spec">
<p><tt>get_segment(Id::<a href="#type-segment_id">segment_id()</a>, Offset::integer(), Length::integer(), Pid::pid()) -&gt; binary()</tt><br></p>
</div><p>Read data from segment.</p>
<h3 class="function"><a name="get_segment_size-2">get_segment_size/2</a></h3>
<div class="spec">
<p><tt>get_segment_size(Id::<a href="#type-segment_id">segment_id()</a>, Pid::pid()) -&gt; integer()</tt><br></p>
</div><p>Get size of segment, in words (8 bytes).</p>
<h3 class="function"><a name="get_segments-1">get_segments/1</a></h3>
<div class="spec">
<p><tt>get_segments(Pid::pid()) -&gt; [binary()]</tt><br></p>
</div><p>Get all allocated data from all segments.</p>
<h3 class="function"><a name="handle_call-3">handle_call/3</a></h3>
<div class="spec">
<p><tt>handle_call(X1, From, State) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="handle_cast-2">handle_cast/2</a></h3>
<div class="spec">
<p><tt>handle_cast(X1, State) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="handle_info-2">handle_info/2</a></h3>
<div class="spec">
<p><tt>handle_info(Info, State) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="init-1">init/1</a></h3>
<div class="spec">
<p><tt>init(X1) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="set_cap_table-2">set_cap_table/2</a></h3>
<div class="spec">
<p><tt>set_cap_table(CapTable, Pid) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start-1">start/1</a></h3>
<div class="spec">
<p><tt>start(Init) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start_link-1">start_link/1</a></h3>
<div class="spec">
<p><tt>start_link(Init) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="stop-1">stop/1</a></h3>
<div class="spec">
<p><tt>stop(Pid) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="terminate-2">terminate/2</a></h3>
<div class="spec">
<p><tt>terminate(Reason, State) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="update_segment-3">update_segment/3</a></h3>
<div class="spec">
<p><tt>update_segment(X1::{<a href="#type-segment_id">segment_id()</a>, integer()}, Data::binary(), Pid::pid()) -&gt; ok</tt><br></p>
</div><p>Write data to segment.</p>
<hr>
<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div>
<p><i>Generated by EDoc, May 30 2014, 12:56:29.</i></p>
</body>
</html>