Current section

Files

Jump to
cloudi_service_queue doc cloudi_write_ahead_logging.html
Raw

doc/cloudi_write_ahead_logging.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Module cloudi_write_ahead_logging</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 cloudi_write_ahead_logging</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>
<h3><a name="CloudI_Write_Ahead_Logging_(WAL)">CloudI Write Ahead Logging (WAL)</a></h3>
File storage for transaction logging done by cloudi_service_queue.
<p>Copyright © 2014-2020 Michael Truog</p>
<p><b>Version:</b> 2.0.1 Nov 26 2020 19:35:46
------------------------------------------------------------------------</p>
<p><b>Authors:</b> Michael Truog (<a href="mailto:mjtruog at protonmail dot com"><tt>mjtruog at protonmail dot com</tt></a>).</p>
<h2><a name="description">Description</a></h2>
<h3><a name="CloudI_Write_Ahead_Logging_(WAL)">CloudI Write Ahead Logging (WAL)</a></h3>
File storage for transaction logging done by cloudi_service_queue.
No disk index is maintained, but an in-memory index is kept.
<h2><a name="types">Data Types</a></h2>
<h3 class="typedecl"><a name="type-checksum_algorithms">checksum_algorithms()</a></h3>
<p><tt>checksum_algorithms() = crc32 | md5 | ripemd160 | sha | sha224 | sha256 | sha384 | sha512</tt></p>
<h3 class="typedecl"><a name="type-non_neg_integer_64bit">non_neg_integer_64bit()</a></h3>
<p><tt>non_neg_integer_64bit() = 0..18446744073709551615</tt></p>
<h3 class="typedecl"><a name="type-pos_integer_64bit">pos_integer_64bit()</a></h3>
<p><tt>pos_integer_64bit() = 1..18446744073709551615</tt></p>
<h3 class="typedecl"><a name="type-retry_function">retry_function()</a></h3>
<p><tt>retry_function() = fun((Chunk::<a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a>, Retry::boolean()) -&gt; {ok, <a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a>} | {error, timeout})</tt></p>
<h3 class="typedecl"><a name="type-state">state()</a></h3>
<p><tt>state() = #state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}</tt></p>
<h3 class="typedecl"><a name="type-update_function">update_function()</a></h3>
<p><tt>update_function() = fun((<a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a>) -&gt; {<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a>, <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a>} | undefined)</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="#erase-2">erase/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#erase_retry-4">erase_retry/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#fetch_keys-1">fetch_keys/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#new-5">new/5</a></td><td></td></tr>
<tr><td valign="top"><a href="#size-1">size/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#size_free-1">size_free/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#store_end-3">store_end/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#store_fail-2">store_fail/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#store_start-2">store_start/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#update-3">update/3</a></td><td></td></tr>
</table>
<h2><a name="functions">Function Details</a></h2>
<h3 class="function"><a name="erase-2">erase/2</a></h3>
<div class="spec">
<p><tt>erase(ChunkId::<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a>, State::#state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}) -&gt; {<a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a>, #state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}}</tt><br></p>
</div>
<h3 class="function"><a name="erase_retry-4">erase_retry/4</a></h3>
<div class="spec">
<p><tt>erase_retry(ChunkId::<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a>, RetryMax::non_neg_integer(), RetryF::<a href="#type-retry_function">retry_function()</a>, State::#state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}) -&gt; #state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}</tt><br></p>
</div>
<h3 class="function"><a name="fetch_keys-1">fetch_keys/1</a></h3>
<div class="spec">
<p><tt>fetch_keys(State::#state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}) -&gt; [<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a>]</tt><br></p>
</div>
<h3 class="function"><a name="new-5">new/5</a></h3>
<div class="spec">
<p><tt>new(FilePath::string(), FileSizeLimit::1024..18446744073709551615, Compression::0..9, Checksum::undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, RetryF::<a href="#type-retry_function">retry_function()</a>) -&gt; #state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}</tt><br></p>
</div>
<h3 class="function"><a name="size-1">size/1</a></h3>
<div class="spec">
<p><tt>size(State::#state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}) -&gt; non_neg_integer()</tt><br></p>
</div>
<h3 class="function"><a name="size_free-1">size_free/1</a></h3>
<div class="spec">
<p><tt>size_free(State::#state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}) -&gt; non_neg_integer()</tt><br></p>
</div>
<h3 class="function"><a name="store_end-3">store_end/3</a></h3>
<div class="spec">
<p><tt>store_end(ChunkId::<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a>, Chunk::#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}, State::#state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}) -&gt; #state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}</tt><br></p>
</div>
<h3 class="function"><a name="store_fail-2">store_fail/2</a></h3>
<div class="spec">
<p><tt>store_fail(Chunk::#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}, State::#state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}) -&gt; #state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}</tt><br></p>
</div>
<h3 class="function"><a name="store_start-2">store_start/2</a></h3>
<div class="spec">
<p><tt>store_start(ChunkRequest::<a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a>, State::#state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}) -&gt; {#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}, #state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}} | full</tt><br></p>
</div>
<h3 class="function"><a name="update-3">update/3</a></h3>
<div class="spec">
<p><tt>update(ChunkId::<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a>, UpdateF::<a href="#type-update_function">update_function()</a>, State::#state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}) -&gt; {<a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, #state{file = string(), file_size_limit = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, compression = 0..9, checksum = undefined | <a href="#type-checksum_algorithms">checksum_algorithms()</a>, checksum_size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = non_neg_integer(), chunks = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = <a href="#type-pos_integer_64bit">pos_integer_64bit()</a>, position = <a href="#type-non_neg_integer_64bit">non_neg_integer_64bit()</a>, request = <a href="cloudi_service_queue.html#type-request">cloudi_service_queue:request()</a> | undefined, retries = non_neg_integer()}]}}</tt><br></p>
</div>
<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</i></p>
</body>
</html>