Permalink
Browse files

v2.4.0 docs

  • Loading branch information...
1 parent 1628991 commit 701c78004a2dd4891db7beb745c667b076d46ba9 @lukebakken lukebakken committed with lukebakken Jun 17, 2016
View
7 edoc-info
@@ -0,0 +1,7 @@
+%% encoding: UTF-8
+{application,riakc}.
+{packages,[]}.
+{modules,[riakc_counter,riakc_datatype,riakc_flag,riakc_map,riakc_obj,
+ riakc_pb_socket,riakc_register,riakc_set,riakc_ts,
+ riakc_ts_get_operator,riakc_ts_put_operator,
+ riakc_ts_query_operator]}.
View
BIN erlang.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
17 index.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>The riakc application</title>
+</head>
+<frameset cols="20%,80%">
+<frame src="modules-frame.html" name="modulesFrame" title="">
+
+<frame src="overview-summary.html" name="overviewFrame" title="">
+<noframes>
+<h2>This page uses frames</h2>
+<p>Your browser does not accept frames.
+<br>You should go to the <a href="overview-summary.html">non-frame version</a> instead.
+</p>
+</noframes>
+</frameset>
+</html>
View
23 modules-frame.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>The riakc application</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc">
+</head>
+<body bgcolor="white">
+<h2 class="indextitle">Modules</h2>
+<table width="100%" border="0" summary="list of modules">
+<tr><td><a href="riakc_counter.html" target="overviewFrame" class="module">riakc_counter</a></td></tr>
+<tr><td><a href="riakc_datatype.html" target="overviewFrame" class="module">riakc_datatype</a></td></tr>
+<tr><td><a href="riakc_flag.html" target="overviewFrame" class="module">riakc_flag</a></td></tr>
+<tr><td><a href="riakc_map.html" target="overviewFrame" class="module">riakc_map</a></td></tr>
+<tr><td><a href="riakc_obj.html" target="overviewFrame" class="module">riakc_obj</a></td></tr>
+<tr><td><a href="riakc_pb_socket.html" target="overviewFrame" class="module">riakc_pb_socket</a></td></tr>
+<tr><td><a href="riakc_register.html" target="overviewFrame" class="module">riakc_register</a></td></tr>
+<tr><td><a href="riakc_set.html" target="overviewFrame" class="module">riakc_set</a></td></tr>
+<tr><td><a href="riakc_ts.html" target="overviewFrame" class="module">riakc_ts</a></td></tr>
+<tr><td><a href="riakc_ts_get_operator.html" target="overviewFrame" class="module">riakc_ts_get_operator</a></td></tr>
+<tr><td><a href="riakc_ts_put_operator.html" target="overviewFrame" class="module">riakc_ts_put_operator</a></td></tr>
+<tr><td><a href="riakc_ts_query_operator.html" target="overviewFrame" class="module">riakc_ts_query_operator</a></td></tr></table>
+</body>
+</html>
View
45 overview-summary.html
@@ -0,0 +1,45 @@
+<!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>Riak Client for Erlang</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>
+<h1>Riak Client for Erlang</h1>
+<p>Copyright © 2016 Basho Technologies, Inc.</p>
+<p><b>Version:</b> 2.4.0</p>
+<p><b>Authors:</b> Basho Technologies, Inc..</p>
+<p>The <code>riakc</code> application encapsulates the Erlang
+client for Riak. This client uses the Protocol Buffers transport
+<em>only</em>. For HTTP transport, see <a href="https://github.com/basho/riak-erlang-http-client">riak-erlang-http-client</a>.</p>
+
+<p>To use the client in your application, we recommend using <a href="https://github.com/rebar/rebar">rebar</a>. Add a dependency like
+the one below to the <code>rebar.config</code> in your project.</p>
+
+<pre>{deps, [
+ {riakc, "2.1.*", {git, "https://github.com/basho/riak-erlang-client", {tag, "2.4.0"}}}
+ ]}.</pre>
+
+<p>The application consists of these primary modules:</p>
+
+<ul>
+<li><strong>riakc_pb_socket</strong> - connection management and execution of client commands. Usually you will start a connection process using <code>riakc_pb_socket:start_link/2,3</code>.</li>
+<li><strong>riakc_obj</strong> - accessor and mutator functions for the <code>riakc_obj</code> record that is sent to and returned from Key-Value operations.</li>
+<li>Riak convergent datatypes are supported by the <strong>riakc_datatype</strong> behaviour and these modules:
+ <ul>
+ <li><strong>riakc_counter</strong></li>
+ <li><strong>riakc_set</strong></li>
+ <li><strong>riakc_map</strong> (with embedded
+ types <strong>riakc_flag</strong>
+ and <strong>riakc_register</strong>)</li>
+ </ul>
+</li>
+</ul>
+<p><code>riakc</code> is licensed under the Apache v2 license.</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, Jun 17 2016, 06:39:46.</i></p>
+</body>
+</html>
View
6 overview.edoc
@@ -1,6 +1,6 @@
@author Basho Technologies, Inc.
@copyright 2016 Basho Technologies, Inc.
-@version 2.1.2
+@version 2.4.0
@title Riak Client for Erlang
@doc <p>The <code>riakc</code> application encapsulates the Erlang
client for Riak. This client uses the Protocol Buffers transport
@@ -12,9 +12,7 @@ href="https://github.com/rebar/rebar">rebar</a>. Add a dependency like
the one below to the <code>rebar.config</code> in your project.</p>
<pre>{deps, [
- {riakc, "2.1.*",
- {git, "git://github.com/basho/riak-erlang-client",
- {tag, "2.1.2"}}}
+ {riakc, "2.1.*", {git, "https://github.com/basho/riak-erlang-client", {tag, "2.4.0"}}}
]}.</pre>
<p>The application consists of these primary modules:</p>
View
11 packages-frame.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>The riakc application</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc">
+</head>
+<body bgcolor="white">
+<h2 class="indextitle">Packages</h2>
+<table width="100%" border="0" summary="list of packages"></table>
+</body>
+</html>
View
111 riakc_counter.html
@@ -0,0 +1,111 @@
+<!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 riakc_counter</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 riakc_counter</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>Encapsulates a counter data-type.
+
+<p><b>Behaviours:</b> <a href="riakc_datatype.html"><tt>riakc_datatype</tt></a>.</p>
+
+<h2><a name="description">Description</a></h2>Encapsulates a counter data-type. Counters are integers that
+ can be incremented or decremented. Like the other
+ eventually-consistent types, the original fetched value is
+ unmodified by increments. Instead, increments are captured for
+ later application in Riak.
+<h2><a name="types">Data Types</a></h2>
+
+<h3 class="typedecl"><a name="type-counter">counter()</a></h3>
+<p><b>abstract datatype</b>: <tt>counter()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-counter_op">counter_op()</a></h3>
+<p><tt>counter_op() = {increment, integer()}</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="#decrement-1">decrement/1</a></td><td>Decrements the counter by 1.</td></tr>
+<tr><td valign="top"><a href="#decrement-2">decrement/2</a></td><td>Decrements the counter by the passed amount.</td></tr>
+<tr><td valign="top"><a href="#increment-1">increment/1</a></td><td>Increments the counter by 1.</td></tr>
+<tr><td valign="top"><a href="#increment-2">increment/2</a></td><td>Increments the counter by the passed amount.</td></tr>
+<tr><td valign="top"><a href="#is_type-1">is_type/1</a></td><td>Determines whether the passed term is a counter container.</td></tr>
+<tr><td valign="top"><a href="#new-0">new/0</a></td><td>Creates a new counter type with a value of 0.</td></tr>
+<tr><td valign="top"><a href="#new-1">new/1</a></td><td>Creates a new counter type with the passed context.</td></tr>
+<tr><td valign="top"><a href="#new-2">new/2</a></td><td>Creates a new counter type with the passed integer and
+ context.</td></tr>
+<tr><td valign="top"><a href="#to_op-1">to_op/1</a></td><td>Extracts the changes to this counter as an operation.</td></tr>
+<tr><td valign="top"><a href="#type-0">type/0</a></td><td>Returns the symbolic name of this container.</td></tr>
+<tr><td valign="top"><a href="#value-1">value/1</a></td><td>Gets the original value of the counter.</td></tr>
+</table>
+
+<h2><a name="functions">Function Details</a></h2>
+
+<h3 class="function"><a name="decrement-1">decrement/1</a></h3>
+<div class="spec">
+<p><tt>decrement(Counter::<a href="#type-counter">counter()</a>) -&gt; <a href="#type-counter">counter()</a></tt><br></p>
+</div><p>Decrements the counter by 1.</p>
+
+<h3 class="function"><a name="decrement-2">decrement/2</a></h3>
+<div class="spec">
+<p><tt>decrement(Amount::integer(), Counter::<a href="#type-counter">counter()</a>) -&gt; <a href="#type-counter">counter()</a></tt><br></p>
+</div><p>Decrements the counter by the passed amount.</p>
+
+<h3 class="function"><a name="increment-1">increment/1</a></h3>
+<div class="spec">
+<p><tt>increment(Counter::<a href="#type-counter">counter()</a>) -&gt; <a href="#type-counter">counter()</a></tt><br></p>
+</div><p>Increments the counter by 1.</p>
+
+<h3 class="function"><a name="increment-2">increment/2</a></h3>
+<div class="spec">
+<p><tt>increment(Amount::integer(), Counter::<a href="#type-counter">counter()</a>) -&gt; <a href="#type-counter">counter()</a></tt><br></p>
+</div><p>Increments the counter by the passed amount.</p>
+
+<h3 class="function"><a name="is_type-1">is_type/1</a></h3>
+<div class="spec">
+<p><tt>is_type(T::term()) -&gt; boolean()</tt><br></p>
+</div><p>Determines whether the passed term is a counter container.</p>
+
+<h3 class="function"><a name="new-0">new/0</a></h3>
+<div class="spec">
+<p><tt>new() -&gt; <a href="#type-counter">counter()</a></tt><br></p>
+</div><p>Creates a new counter type with a value of 0.</p>
+
+<h3 class="function"><a name="new-1">new/1</a></h3>
+<div class="spec">
+<p><tt>new(Context::<a href="riakc_datatype.html#type-context">riakc_datatype:context()</a>) -&gt; <a href="#type-counter">counter()</a></tt><br></p>
+</div><p>Creates a new counter type with the passed context. It's
+ ignored, but we need this constructor for new nested (in maps)
+ objects on the fly</p>
+
+<h3 class="function"><a name="new-2">new/2</a></h3>
+<div class="spec">
+<p><tt>new(Value::integer(), Context::<a href="riakc_datatype.html#type-context">riakc_datatype:context()</a>) -&gt; <a href="#type-counter">counter()</a></tt><br></p>
+</div><p>Creates a new counter type with the passed integer and
+ context.</p>
+
+<h3 class="function"><a name="to_op-1">to_op/1</a></h3>
+<div class="spec">
+<p><tt>to_op(Counter::<a href="#type-counter">counter()</a>) -&gt; <a href="riakc_datatype.html#type-update">riakc_datatype:update</a>(<a href="#type-counter_op">counter_op()</a>)</tt><br></p>
+</div><p>Extracts the changes to this counter as an operation.</p>
+
+<h3 class="function"><a name="type-0">type/0</a></h3>
+<div class="spec">
+<p><tt>type() -&gt; atom()</tt><br></p>
+</div><p>Returns the symbolic name of this container.</p>
+
+<h3 class="function"><a name="value-1">value/1</a></h3>
+<div class="spec">
+<p><tt>value(Counter::<a href="#type-counter">counter()</a>) -&gt; integer()</tt><br></p>
+</div><p>Gets the original value of the counter.</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, Jun 17 2016, 06:39:45.</i></p>
+</body>
+</html>
View
69 riakc_datatype.html
@@ -0,0 +1,69 @@
+<!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 riakc_datatype</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 riakc_datatype</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>When used with riakc_pb_socket:fetch_type() and
+ riakc_pb_socket:update_type(), modules implementing this behaviour
+ provide an internally consistent local view of the data while
+ capturing update operations for shipping back to the server.
+
+<p><b>This module defines the <tt>riakc_datatype</tt> behaviour.</b><br> Required callback functions: <tt>new/0</tt>, <tt>new/1</tt>, <tt>new/2</tt>, <tt>value/1</tt>, <tt>to_op/1</tt>, <tt>is_type/1</tt>, <tt>type/0</tt>.</p>
+
+<h2><a name="description">Description</a></h2>When used with riakc_pb_socket:fetch_type() and
+ riakc_pb_socket:update_type(), modules implementing this behaviour
+ provide an internally consistent local view of the data while
+ capturing update operations for shipping back to the server.
+<h2><a name="types">Data Types</a></h2>
+
+<h3 class="typedecl"><a name="type-context">context()</a></h3>
+<p><tt>context() = <a href="#type-maybe">maybe</a>(binary())</tt></p>
+
+
+<h3 class="typedecl"><a name="type-datatype">datatype()</a></h3>
+<p><tt>datatype() = term()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-maybe">maybe()</a></h3>
+<p><tt>maybe(T) = T | undefined</tt></p>
+
+
+<h3 class="typedecl"><a name="type-typename">typename()</a></h3>
+<p><tt>typename() = atom()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-update">update()</a></h3>
+<p><tt>update(T) = <a href="#type-maybe">maybe</a>({<a href="#type-typename">typename()</a>, T, <a href="#type-context">context()</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="#module_for_term-1">module_for_term/1</a></td><td>Returns the appropriate container module for the given term,
+ if possible.</td></tr>
+<tr><td valign="top"><a href="#module_for_type-1">module_for_type/1</a></td><td></td></tr>
+</table>
+
+<h2><a name="functions">Function Details</a></h2>
+
+<h3 class="function"><a name="module_for_term-1">module_for_term/1</a></h3>
+<div class="spec">
+<p><tt>module_for_term(T::<a href="#type-datatype">datatype()</a>) -&gt; <a href="#type-maybe">maybe</a>(module())</tt><br></p>
+</div><p>Returns the appropriate container module for the given term,
+ if possible.</p>
+
+<h3 class="function"><a name="module_for_type-1">module_for_type/1</a></h3>
+<div class="spec">
+<p><tt>module_for_type(Type::atom()) -&gt; module()</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, Jun 17 2016, 06:39:45.</i></p>
+</body>
+</html>
View
102 riakc_flag.html
@@ -0,0 +1,102 @@
+<!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 riakc_flag</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 riakc_flag</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>Encapsulates a flag data-type.
+
+<p><b>Behaviours:</b> <a href="riakc_datatype.html"><tt>riakc_datatype</tt></a>.</p>
+
+<h2><a name="description">Description</a></h2>Encapsulates a flag data-type. Flags are boolean values that
+ can be enabled or disabled. Like the other eventually-consistent
+ types, the original fetched value is unmodified by enabling or
+ disabling. Instead, the effective operation (<code>enable</code> or <code>disable</code>)
+ is captured for later application in Riak. Note that it is
+ possible to <code>enable</code> a flag that is already <code>true</code> and <code>disable</code> a
+ flag that is already <code>false</code>. Flags are only available as values in
+ maps.
+<h2><a name="types">Data Types</a></h2>
+
+<h3 class="typedecl"><a name="type-flag">flag()</a></h3>
+<p><b>abstract datatype</b>: <tt>flag()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-flag_op">flag_op()</a></h3>
+<p><tt>flag_op() = enable | disable</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="#disable-1">disable/1</a></td><td>Disables the flag, setting its value to false.</td></tr>
+<tr><td valign="top"><a href="#enable-1">enable/1</a></td><td>Enables the flag, setting its value to true.</td></tr>
+<tr><td valign="top"><a href="#is_type-1">is_type/1</a></td><td>Determines whether the passed term is a flag container.</td></tr>
+<tr><td valign="top"><a href="#new-0">new/0</a></td><td>Creates a new, empty flag container type.</td></tr>
+<tr><td valign="top"><a href="#new-1">new/1</a></td><td>Creates a new flag with the passed context.</td></tr>
+<tr><td valign="top"><a href="#new-2">new/2</a></td><td>Creates a new flag with the specified value and context.</td></tr>
+<tr><td valign="top"><a href="#to_op-1">to_op/1</a></td><td>Extracts an operation from the flag that can be encoded into
+ an update request.</td></tr>
+<tr><td valign="top"><a href="#type-0">type/0</a></td><td>Returns the symbolic name of this container.</td></tr>
+<tr><td valign="top"><a href="#value-1">value/1</a></td><td>Extracts the original value of the flag.</td></tr>
+</table>
+
+<h2><a name="functions">Function Details</a></h2>
+
+<h3 class="function"><a name="disable-1">disable/1</a></h3>
+<div class="spec">
+<p><tt>disable(Flag::<a href="#type-flag">flag()</a>) -&gt; <a href="#type-flag">flag()</a></tt><br></p>
+</div><p>throws <tt>context_required</tt></p>
+<p>Disables the flag, setting its value to false.</p>
+
+<h3 class="function"><a name="enable-1">enable/1</a></h3>
+<div class="spec">
+<p><tt>enable(Flag::<a href="#type-flag">flag()</a>) -&gt; <a href="#type-flag">flag()</a></tt><br></p>
+</div><p>Enables the flag, setting its value to true.</p>
+
+<h3 class="function"><a name="is_type-1">is_type/1</a></h3>
+<div class="spec">
+<p><tt>is_type(T::term()) -&gt; boolean()</tt><br></p>
+</div><p>Determines whether the passed term is a flag container.</p>
+
+<h3 class="function"><a name="new-0">new/0</a></h3>
+<div class="spec">
+<p><tt>new() -&gt; <a href="#type-flag">flag()</a></tt><br></p>
+</div><p>Creates a new, empty flag container type.</p>
+
+<h3 class="function"><a name="new-1">new/1</a></h3>
+<div class="spec">
+<p><tt>new(Context::<a href="riakc_datatype.html#type-context">riakc_datatype:context()</a>) -&gt; <a href="#type-flag">flag()</a></tt><br></p>
+</div><p>Creates a new flag with the passed context.</p>
+
+<h3 class="function"><a name="new-2">new/2</a></h3>
+<div class="spec">
+<p><tt>new(Value::boolean(), Context::<a href="riakc_datatype.html#type-context">riakc_datatype:context()</a>) -&gt; <a href="#type-flag">flag()</a></tt><br></p>
+</div><p>Creates a new flag with the specified value and context.</p>
+
+<h3 class="function"><a name="to_op-1">to_op/1</a></h3>
+<div class="spec">
+<p><tt>to_op(Flag::<a href="#type-flag">flag()</a>) -&gt; <a href="riakc_datatype.html#type-update">riakc_datatype:update</a>(<a href="#type-flag_op">flag_op()</a>)</tt><br></p>
+</div><p>Extracts an operation from the flag that can be encoded into
+ an update request.</p>
+
+<h3 class="function"><a name="type-0">type/0</a></h3>
+<div class="spec">
+<p><tt>type() -&gt; atom()</tt><br></p>
+</div><p>Returns the symbolic name of this container.</p>
+
+<h3 class="function"><a name="value-1">value/1</a></h3>
+<div class="spec">
+<p><tt>value(Flag::<a href="#type-flag">flag()</a>) -&gt; boolean()</tt><br></p>
+</div><p>Extracts the original value of the flag. true is enabled,
+ false is disabled.</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, Jun 17 2016, 06:39:45.</i></p>
+</body>
+</html>
View
197 riakc_map.html
@@ -0,0 +1,197 @@
+<!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 riakc_map</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 riakc_map</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>Encapsulates a map data-type.
+
+<p><b>Behaviours:</b> <a href="riakc_datatype.html"><tt>riakc_datatype</tt></a>.</p>
+
+<h2><a name="description">Description</a></h2><p>Encapsulates a map data-type. Maps differ from Erlang's dict
+ types in several ways:</p>
+ <ul>
+ <li>Maps are special key-value structures where the key is a pair
+ of a binary name and data type, and the value is a container of the
+ specified type, e.g. <code>{&lt;&lt;"friends"&gt;&gt;, set} -&gt; riakc_set:set()</code>.
+ Regular Erlang terms may not be values in the map, but could be
+ serialized into <code>register</code> fields if last-write-wins semantics are
+ sufficient.</li>
+ <li>Like the other eventually-consistent types, updates are not
+ applied to local state. Instead, removals, and
+ modifications are captured for later application by Riak.</li>
+ <li>You may not "store" values in a map.
+ Existing or non-existing entries can be modified
+ using <code>update/3</code>, which is analogous to <code>dict:update/3</code>. If the
+ entry is not present, it will be populated with a new value before
+ the update function is applied. The update function will receive
+ the appropriate container type as its sole argument.</li>
+ <li>Like sets, removals will be processed before additions and
+ updates in Riak. Removals performed without a context may result in
+ failure.</li>
+ <li> Updating an entry followed by removing that same
+ entry will result in no operation being recorded. Likewise,
+ removing an entry followed by updating that entry will
+ cancel the removal operation.</li>
+ </ul>
+<h2><a name="types">Data Types</a></h2>
+
+<h3 class="typedecl"><a name="type-crdt_map">crdt_map()</a></h3>
+<p><tt>crdt_map() = #map{value = [<a href="#type-raw_entry">raw_entry()</a>], updates = [<a href="#type-entry">entry()</a>], removes = <a href="ordsets.html#type-ordset">ordsets:ordset</a>(<a href="#type-key">key()</a>), context = <a href="riakc_datatype.html#type-context">riakc_datatype:context()</a>}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-datatype">datatype()</a></h3>
+<p><tt>datatype() = counter | flag | register | set | map</tt></p>
+
+
+<h3 class="typedecl"><a name="type-embedded_type_op">embedded_type_op()</a></h3>
+<p><tt>embedded_type_op() = <a href="riakc_counter.html#type-counter_op">riakc_counter:counter_op()</a> | <a href="riakc_set.html#type-set_op">riakc_set:set_op()</a> | <a href="riakc_flag.html#type-flag_op">riakc_flag:flag_op()</a> | <a href="riakc_register.html#type-register_op">riakc_register:register_op()</a> | <a href="#type-map_op">map_op()</a></tt></p>
+
+
+<h3 class="typedecl"><a name="type-entry">entry()</a></h3>
+<p><tt>entry() = {<a href="#type-key">key()</a>, <a href="riakc_datatype.html#type-datatype">riakc_datatype:datatype()</a>}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-field_update">field_update()</a></h3>
+<p><tt>field_update() = {update, <a href="#type-key">key()</a>, <a href="#type-embedded_type_op">embedded_type_op()</a>}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-key">key()</a></h3>
+<p><tt>key() = {binary(), <a href="#type-datatype">datatype()</a>}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-map_op">map_op()</a></h3>
+<p><tt>map_op() = {update, [<a href="#type-simple_map_op">simple_map_op()</a>]}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-raw_entry">raw_entry()</a></h3>
+<p><tt>raw_entry() = {<a href="#type-key">key()</a>, term()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-simple_map_op">simple_map_op()</a></h3>
+<p><tt>simple_map_op() = {remove, <a href="#type-key">key()</a>} | <a href="#type-field_update">field_update()</a></tt></p>
+
+
+<h3 class="typedecl"><a name="type-update_fun">update_fun()</a></h3>
+<p><tt>update_fun() = fun((<a href="riakc_datatype.html#type-datatype">riakc_datatype:datatype()</a>) -&gt; <a href="riakc_datatype.html#type-datatype">riakc_datatype:datatype()</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="#erase-2">erase/2</a></td><td>Removes a key and its value from the map.</td></tr>
+<tr><td valign="top"><a href="#fetch-2">fetch/2</a></td><td>Returns the "unwrapped" value associated with the key in the
+ map.</td></tr>
+<tr><td valign="top"><a href="#fetch_keys-1">fetch_keys/1</a></td><td>Returns a list of all keys in the map.</td></tr>
+<tr><td valign="top"><a href="#find-2">find/2</a></td><td>Searches for a key in the map.</td></tr>
+<tr><td valign="top"><a href="#fold-3">fold/3</a></td><td>Folds over the entries in the map.</td></tr>
+<tr><td valign="top"><a href="#is_key-2">is_key/2</a></td><td>Test if the key is contained in the map.</td></tr>
+<tr><td valign="top"><a href="#is_type-1">is_type/1</a></td><td>Determines whether the passed term is a map container.</td></tr>
+<tr><td valign="top"><a href="#new-0">new/0</a></td><td>Creates a new, empty map container type.</td></tr>
+<tr><td valign="top"><a href="#new-1">new/1</a></td><td>Creates a new map with the specified context.</td></tr>
+<tr><td valign="top"><a href="#new-2">new/2</a></td><td>Creates a new map with the specified key-value pairs and context.</td></tr>
+<tr><td valign="top"><a href="#size-1">size/1</a></td><td>Returns the number of entries in the map.</td></tr>
+<tr><td valign="top"><a href="#to_op-1">to_op/1</a></td><td>Extracts an operation from the map that can be encoded into an
+ update request.</td></tr>
+<tr><td valign="top"><a href="#type-0">type/0</a></td><td>Returns the symbolic name of this container.</td></tr>
+<tr><td valign="top"><a href="#update-3">update/3</a></td><td>Updates the value stored at the key by calling the passed
+ function to get the new value.</td></tr>
+<tr><td valign="top"><a href="#value-1">value/1</a></td><td>Gets the original value of the map.</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(Key::<a href="#type-key">key()</a>, Map::<a href="#type-crdt_map">crdt_map()</a>) -&gt; <a href="#type-crdt_map">crdt_map()</a></tt><br></p>
+</div><p>throws <tt>context_required</tt></p>
+<p>Removes a key and its value from the map. Removing a key that
+ does not exist simply records a remove operation.</p>
+
+<h3 class="function"><a name="fetch-2">fetch/2</a></h3>
+<div class="spec">
+<p><tt>fetch(Key::<a href="#type-key">key()</a>, Map::<a href="#type-crdt_map">crdt_map()</a>) -&gt; term()</tt><br></p>
+</div><p>Returns the "unwrapped" value associated with the key in the
+ map. If the key is not present, an exception is generated.</p>
+
+<h3 class="function"><a name="fetch_keys-1">fetch_keys/1</a></h3>
+<div class="spec">
+<p><tt>fetch_keys(Map::<a href="#type-crdt_map">crdt_map()</a>) -&gt; [<a href="#type-key">key()</a>]</tt><br></p>
+</div><p>Returns a list of all keys in the map.</p>
+
+<h3 class="function"><a name="find-2">find/2</a></h3>
+<div class="spec">
+<p><tt>find(Key::<a href="#type-key">key()</a>, Map::<a href="#type-crdt_map">crdt_map()</a>) -&gt; {ok, term()} | error</tt><br></p>
+</div><p>Searches for a key in the map. Returns <code>{ok, UnwrappedValue}</code>
+ when the key is present, or <code>error</code> if the key is not present in
+ the map.</p>
+
+<h3 class="function"><a name="fold-3">fold/3</a></h3>
+<div class="spec">
+<p><tt>fold(Fun::fun((<a href="#type-key">key()</a>, term(), term()) -&gt; term()), Acc0::term(), Map::<a href="#type-crdt_map">crdt_map()</a>) -&gt; term()</tt><br></p>
+</div><p>Folds over the entries in the map. This yields raw values,
+ not container types.</p>
+
+<h3 class="function"><a name="is_key-2">is_key/2</a></h3>
+<div class="spec">
+<p><tt>is_key(Key::<a href="#type-key">key()</a>, Map::<a href="#type-crdt_map">crdt_map()</a>) -&gt; boolean()</tt><br></p>
+</div><p>Test if the key is contained in the map.</p>
+
+<h3 class="function"><a name="is_type-1">is_type/1</a></h3>
+<div class="spec">
+<p><tt>is_type(T::term()) -&gt; boolean()</tt><br></p>
+</div><p>Determines whether the passed term is a map container.</p>
+
+<h3 class="function"><a name="new-0">new/0</a></h3>
+<div class="spec">
+<p><tt>new() -&gt; <a href="#type-crdt_map">crdt_map()</a></tt><br></p>
+</div><p>Creates a new, empty map container type.</p>
+
+<h3 class="function"><a name="new-1">new/1</a></h3>
+<div class="spec">
+<p><tt>new(Context::<a href="riakc_datatype.html#type-context">riakc_datatype:context()</a>) -&gt; <a href="#type-crdt_map">crdt_map()</a></tt><br></p>
+</div><p>Creates a new map with the specified context.</p>
+
+<h3 class="function"><a name="new-2">new/2</a></h3>
+<div class="spec">
+<p><tt>new(Values::[<a href="#type-raw_entry">raw_entry()</a>], Context::<a href="riakc_datatype.html#type-context">riakc_datatype:context()</a>) -&gt; <a href="#type-crdt_map">crdt_map()</a></tt><br></p>
+</div><p>Creates a new map with the specified key-value pairs and context.</p>
+
+<h3 class="function"><a name="size-1">size/1</a></h3>
+<div class="spec">
+<p><tt>size(Map::<a href="#type-crdt_map">crdt_map()</a>) -&gt; pos_integer()</tt><br></p>
+</div><p>Returns the number of entries in the map.</p>
+
+<h3 class="function"><a name="to_op-1">to_op/1</a></h3>
+<div class="spec">
+<p><tt>to_op(Map::<a href="#type-crdt_map">crdt_map()</a>) -&gt; <a href="riakc_datatype.html#type-update">riakc_datatype:update</a>(<a href="#type-map_op">map_op()</a>)</tt><br></p>
+</div><p>Extracts an operation from the map that can be encoded into an
+ update request.</p>
+
+<h3 class="function"><a name="type-0">type/0</a></h3>
+<div class="spec">
+<p><tt>type() -&gt; atom()</tt><br></p>
+</div><p>Returns the symbolic name of this container.</p>
+
+<h3 class="function"><a name="update-3">update/3</a></h3>
+<div class="spec">
+<p><tt>update(Key::<a href="#type-key">key()</a>, Fun::<a href="#type-update_fun">update_fun()</a>, Map::<a href="#type-crdt_map">crdt_map()</a>) -&gt; <a href="#type-crdt_map">crdt_map()</a></tt><br></p>
+</div><p>Updates the value stored at the key by calling the passed
+ function to get the new value. If the key did not previously exist,
+ it will be initialized to the empty value for its type before being
+ passed to the function.</p>
+
+<h3 class="function"><a name="value-1">value/1</a></h3>
+<div class="spec">
+<p><tt>value(Map::<a href="#type-crdt_map">crdt_map()</a>) -&gt; [<a href="#type-raw_entry">raw_entry()</a>]</tt><br></p>
+</div><p>Gets the original value of the map.</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, Jun 17 2016, 06:39:45.</i></p>
+</body>
+</html>
View
395 riakc_obj.html
@@ -0,0 +1,395 @@
+<!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 riakc_obj</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 riakc_obj</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>riakc_obj is used to wrap bucket/key/value data sent to the
+ server on put and received on get.
+
+
+<h2><a name="description">Description</a></h2>riakc_obj is used to wrap bucket/key/value data sent to the
+ server on put and received on get. It provides
+ accessors for retrieving the data and metadata
+ and copes with siblings if multiple values are allowed.
+<h2><a name="types">Data Types</a></h2>
+
+<h3 class="typedecl"><a name="type-binary_index">binary_index()</a></h3>
+<p><tt>binary_index() = {<a href="#type-binary_index_id">binary_index_id()</a>, [<a href="#type-binary_index_value">binary_index_value()</a>]}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-binary_index_id">binary_index_id()</a></h3>
+<p><tt>binary_index_id() = {binary_index, string()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-binary_index_value">binary_index_value()</a></h3>
+<p><tt>binary_index_value() = binary()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-bucket">bucket()</a></h3>
+<p><tt>bucket() = binary() | {binary(), binary()}</tt></p>
+<p> A bucket name</p>
+
+<h3 class="typedecl"><a name="type-content_type">content_type()</a></h3>
+<p><tt>content_type() = string()</tt></p>
+<p> The media type of a value</p>
+
+<h3 class="typedecl"><a name="type-contents">contents()</a></h3>
+<p><tt>contents() = [{<a href="#type-metadata">metadata()</a>, <a href="#type-value">value()</a>}]</tt></p>
+<p> All metadata/value pairs in a <code>riakc_obj</code>.</p>
+
+<h3 class="typedecl"><a name="type-id">id()</a></h3>
+<p><tt>id() = {<a href="#type-bucket">bucket()</a>, <a href="#type-key">key()</a>}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-integer_index">integer_index()</a></h3>
+<p><tt>integer_index() = {<a href="#type-integer_index_id">integer_index_id()</a>, [<a href="#type-integer_index_value">integer_index_value()</a>]}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-integer_index_id">integer_index_id()</a></h3>
+<p><tt>integer_index_id() = {integer_index, string()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-integer_index_value">integer_index_value()</a></h3>
+<p><tt>integer_index_value() = integer()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-key">key()</a></h3>
+<p><tt>key() = binary() | undefined</tt></p>
+<p> A key name</p>
+
+<h3 class="typedecl"><a name="type-link">link()</a></h3>
+<p><tt>link() = {<a href="#type-tag">tag()</a>, [<a href="#type-id">id()</a>]}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-metadata">metadata()</a></h3>
+<p><tt>metadata() = <a href="dict.html#type-dict">dict:dict</a>(<a href="#type-metadata_key">metadata_key()</a>, <a href="#type-metadata_value">metadata_value()</a>)</tt></p>
+
+
+<h3 class="typedecl"><a name="type-metadata_entry">metadata_entry()</a></h3>
+<p><tt>metadata_entry() = {<a href="#type-metadata_key">metadata_key()</a>, <a href="#type-metadata_value">metadata_value()</a>}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-metadata_key">metadata_key()</a></h3>
+<p><tt>metadata_key() = binary()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-metadata_value">metadata_value()</a></h3>
+<p><tt>metadata_value() = binary()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-riakc_obj">riakc_obj()</a></h3>
+<p><tt>riakc_obj() = #riakc_obj{bucket = undefined | <a href="#type-bucket">bucket()</a>, key = undefined | <a href="#type-key">key()</a>, vclock = undefined | <a href="#type-vclock">vclock()</a>, contents = undefined | <a href="#type-contents">contents()</a>, updatemetadata = undefined | <a href="#type-metadata">metadata()</a>, updatevalue = undefined | <a href="#type-value">value()</a>}</tt></p>
+<p> The record/type containing the entire Riak object.</p>
+
+<h3 class="typedecl"><a name="type-secondary_index">secondary_index()</a></h3>
+<p><tt>secondary_index() = <a href="#type-binary_index">binary_index()</a> | <a href="#type-integer_index">integer_index()</a></tt></p>
+
+
+<h3 class="typedecl"><a name="type-secondary_index_id">secondary_index_id()</a></h3>
+<p><tt>secondary_index_id() = <a href="#type-binary_index_id">binary_index_id()</a> | <a href="#type-integer_index_id">integer_index_id()</a></tt></p>
+
+
+<h3 class="typedecl"><a name="type-secondary_index_value">secondary_index_value()</a></h3>
+<p><tt>secondary_index_value() = <a href="#type-integer_index_value">integer_index_value()</a> | <a href="#type-binary_index_value">binary_index_value()</a></tt></p>
+
+
+<h3 class="typedecl"><a name="type-tag">tag()</a></h3>
+<p><tt>tag() = binary()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-value">value()</a></h3>
+<p><tt>value() = binary()</tt></p>
+<p> An opaque value</p>
+
+<h3 class="typedecl"><a name="type-vclock">vclock()</a></h3>
+<p><tt>vclock() = binary()</tt></p>
+<p> An opaque vector clock</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_link-2">add_link/2</a></td><td> Add links for a specific tag.</td></tr>
+<tr><td valign="top"><a href="#add_secondary_index-2">add_secondary_index/2</a></td><td> Add a secondary index.</td></tr>
+<tr><td valign="top"><a href="#bucket-1">bucket/1</a></td><td>Return the containing bucket for this riakc_obj.</td></tr>
+<tr><td valign="top"><a href="#bucket_type-1">bucket_type/1</a></td><td></td></tr>
+<tr><td valign="top"><a href="#clear_links-1">clear_links/1</a></td><td> Clear all links.</td></tr>
+<tr><td valign="top"><a href="#clear_secondary_indexes-1">clear_secondary_indexes/1</a></td><td> Clear all secondary indexes.</td></tr>
+<tr><td valign="top"><a href="#clear_user_metadata_entries-1">clear_user_metadata_entries/1</a></td><td> Clear all metadata entries.</td></tr>
+<tr><td valign="top"><a href="#delete_links-2">delete_links/2</a></td><td> Delete links for a specific tag.</td></tr>
+<tr><td valign="top"><a href="#delete_secondary_index-2">delete_secondary_index/2</a></td><td> Delete specific secondary index.</td></tr>
+<tr><td valign="top"><a href="#delete_user_metadata_entry-2">delete_user_metadata_entry/2</a></td><td> Delete specific metadata entry.</td></tr>
+<tr><td valign="top"><a href="#get_all_links-1">get_all_links/1</a></td><td> Get all links.</td></tr>
+<tr><td valign="top"><a href="#get_content_type-1">get_content_type/1</a></td><td>Return the content type of the value if there are no siblings.</td></tr>
+<tr><td valign="top"><a href="#get_content_types-1">get_content_types/1</a></td><td>Return a list of content types for all siblings.</td></tr>
+<tr><td valign="top"><a href="#get_contents-1">get_contents/1</a></td><td> Return the contents (a list of {metadata, value} tuples) for
+ this riakc_obj.</td></tr>
+<tr><td valign="top"><a href="#get_links-2">get_links/2</a></td><td> Get links for a specific tag.</td></tr>
+<tr><td valign="top"><a href="#get_metadata-1">get_metadata/1</a></td><td>Assert that this riakc_obj has no siblings and return its
+ associated metadata.</td></tr>
+<tr><td valign="top"><a href="#get_metadatas-1">get_metadatas/1</a></td><td> Return a list of the metadata values for this riakc_obj.</td></tr>
+<tr><td valign="top"><a href="#get_secondary_index-2">get_secondary_index/2</a></td><td> Get value(s) for specific secondary index.</td></tr>
+<tr><td valign="top"><a href="#get_secondary_indexes-1">get_secondary_indexes/1</a></td><td> Get all secondary indexes.</td></tr>
+<tr><td valign="top"><a href="#get_update_content_type-1">get_update_content_type/1</a></td><td>Return the content type of the update value.</td></tr>
+<tr><td valign="top"><a href="#get_update_metadata-1">get_update_metadata/1</a></td><td> Return the updated metadata of this riakc_obj.</td></tr>
+<tr><td valign="top"><a href="#get_update_value-1">get_update_value/1</a></td><td> Return the updated value of this riakc_obj.</td></tr>
+<tr><td valign="top"><a href="#get_user_metadata_entries-1">get_user_metadata_entries/1</a></td><td> Get all metadata entries.</td></tr>
+<tr><td valign="top"><a href="#get_user_metadata_entry-2">get_user_metadata_entry/2</a></td><td> Get specific metadata entry.</td></tr>
+<tr><td valign="top"><a href="#get_value-1">get_value/1</a></td><td>Assert that this riakc_obj has no siblings and return its
+ associated value.</td></tr>
+<tr><td valign="top"><a href="#get_values-1">get_values/1</a></td><td> Return a list of object values for this riakc_obj.</td></tr>
+<tr><td valign="top"><a href="#key-1">key/1</a></td><td> Return the key for this riakc_obj.</td></tr>
+<tr><td valign="top"><a href="#md_ctype-1">md_ctype/1</a></td><td> Return the content type from metadata.</td></tr>
+<tr><td valign="top"><a href="#new-2">new/2</a></td><td>Constructor for new riak client objects.</td></tr>
+<tr><td valign="top"><a href="#new-3">new/3</a></td><td>Constructor for new riak client objects with an update value.</td></tr>
+<tr><td valign="top"><a href="#new-4">new/4</a></td><td>Constructor for new riak client objects with an update value and content type.</td></tr>
+<tr><td valign="top"><a href="#only_bucket-1">only_bucket/1</a></td><td>Return the containing bucket for this riakc_obj.</td></tr>
+<tr><td valign="top"><a href="#select_sibling-2">select_sibling/2</a></td><td> Select the sibling to use for update - starting from 1.</td></tr>
+<tr><td valign="top"><a href="#set_link-2">set_link/2</a></td><td> Set links for a specific tag.</td></tr>
+<tr><td valign="top"><a href="#set_secondary_index-2">set_secondary_index/2</a></td><td> Set a secondary index.</td></tr>
+<tr><td valign="top"><a href="#set_user_metadata_entry-2">set_user_metadata_entry/2</a></td><td> Set a metadata entry.</td></tr>
+<tr><td valign="top"><a href="#set_vclock-2">set_vclock/2</a></td><td> Set the vector clock of an object.</td></tr>
+<tr><td valign="top"><a href="#update_content_type-2">update_content_type/2</a></td><td> Set the updated content-type of an object to CT.</td></tr>
+<tr><td valign="top"><a href="#update_metadata-2">update_metadata/2</a></td><td> Set the updated metadata of an object to M.</td></tr>
+<tr><td valign="top"><a href="#update_value-2">update_value/2</a></td><td> Set the updated value of an object to V.</td></tr>
+<tr><td valign="top"><a href="#update_value-3">update_value/3</a></td><td> Set the updated value of an object to V.</td></tr>
+<tr><td valign="top"><a href="#value_count-1">value_count/1</a></td><td> Return the number of values (siblings) of this riakc_obj.</td></tr>
+<tr><td valign="top"><a href="#vclock-1">vclock/1</a></td><td> Return the vector clock for this riakc_obj.</td></tr>
+</table>
+
+<h2><a name="functions">Function Details</a></h2>
+
+<h3 class="function"><a name="add_link-2">add_link/2</a></h3>
+<div class="spec">
+<p><tt>add_link(MD::<a href="#type-metadata">metadata()</a>, Link::<a href="#type-secondary_index">secondary_index()</a> | [<a href="#type-secondary_index">secondary_index()</a>]) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Add links for a specific tag</p>
+
+<h3 class="function"><a name="add_secondary_index-2">add_secondary_index/2</a></h3>
+<div class="spec">
+<p><tt>add_secondary_index(MD::<a href="#type-metadata">metadata()</a>, Rest::<a href="#type-secondary_index">secondary_index()</a> | [<a href="#type-secondary_index">secondary_index()</a>]) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Add a secondary index</p>
+
+<h3 class="function"><a name="bucket-1">bucket/1</a></h3>
+<div class="spec">
+<p><tt>bucket(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-bucket">bucket()</a></tt><br></p>
+</div><p>Return the containing bucket for this riakc_obj.</p>
+
+<h3 class="function"><a name="bucket_type-1">bucket_type/1</a></h3>
+<div class="spec">
+<p><tt>bucket_type(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-bucket">bucket()</a></tt><br></p>
+</div>
+
+<h3 class="function"><a name="clear_links-1">clear_links/1</a></h3>
+<div class="spec">
+<p><tt>clear_links(MD::<a href="#type-metadata">metadata()</a>) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Clear all links</p>
+
+<h3 class="function"><a name="clear_secondary_indexes-1">clear_secondary_indexes/1</a></h3>
+<div class="spec">
+<p><tt>clear_secondary_indexes(MD::<a href="#type-metadata">metadata()</a>) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Clear all secondary indexes</p>
+
+<h3 class="function"><a name="clear_user_metadata_entries-1">clear_user_metadata_entries/1</a></h3>
+<div class="spec">
+<p><tt>clear_user_metadata_entries(MD::<a href="#type-metadata">metadata()</a>) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Clear all metadata entries</p>
+
+<h3 class="function"><a name="delete_links-2">delete_links/2</a></h3>
+<div class="spec">
+<p><tt>delete_links(MD::<a href="#type-metadata">metadata()</a>, Tag::<a href="#type-tag">tag()</a>) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Delete links for a specific tag</p>
+
+<h3 class="function"><a name="delete_secondary_index-2">delete_secondary_index/2</a></h3>
+<div class="spec">
+<p><tt>delete_secondary_index(MD::<a href="#type-metadata">metadata()</a>, IndexId::<a href="#type-secondary_index_id">secondary_index_id()</a>) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Delete specific secondary index</p>
+
+<h3 class="function"><a name="delete_user_metadata_entry-2">delete_user_metadata_entry/2</a></h3>
+<div class="spec">
+<p><tt>delete_user_metadata_entry(MD::<a href="#type-metadata">metadata()</a>, Key::<a href="#type-metadata_key">metadata_key()</a>) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Delete specific metadata entry</p>
+
+<h3 class="function"><a name="get_all_links-1">get_all_links/1</a></h3>
+<div class="spec">
+<p><tt>get_all_links(MD::<a href="#type-metadata">metadata()</a>) -&gt; [<a href="#type-link">link()</a>]</tt><br></p>
+</div><p> Get all links</p>
+
+<h3 class="function"><a name="get_content_type-1">get_content_type/1</a></h3>
+<div class="spec">
+<p><tt>get_content_type(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-content_type">content_type()</a></tt><br></p>
+</div><p>throws <tt>siblings</tt></p>
+<p>Return the content type of the value if there are no siblings.</p>
+<p><b>See also:</b> <a href="#get_metadata-1">get_metadata/1</a>.</p>
+
+<h3 class="function"><a name="get_content_types-1">get_content_types/1</a></h3>
+<div class="spec">
+<p><tt>get_content_types(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; [<a href="#type-content_type">content_type()</a>]</tt><br></p>
+</div><p>Return a list of content types for all siblings.</p>
+
+<h3 class="function"><a name="get_contents-1">get_contents/1</a></h3>
+<div class="spec">
+<p><tt>get_contents(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-contents">contents()</a></tt><br></p>
+</div><p> Return the contents (a list of {metadata, value} tuples) for
+ this riakc_obj.</p>
+
+<h3 class="function"><a name="get_links-2">get_links/2</a></h3>
+<div class="spec">
+<p><tt>get_links(MD::<a href="#type-metadata">metadata()</a>, Tag::<a href="#type-tag">tag()</a>) -&gt; [<a href="#type-id">id()</a>] | notfound</tt><br></p>
+</div><p> Get links for a specific tag</p>
+
+<h3 class="function"><a name="get_metadata-1">get_metadata/1</a></h3>
+<div class="spec">
+<p><tt>get_metadata(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p>throws <tt>siblings</tt></p>
+<p>Assert that this riakc_obj has no siblings and return its
+ associated metadata. This function will throw <code>siblings</code> if
+ the object has siblings (value_count() &gt; 1).</p>
+
+<h3 class="function"><a name="get_metadatas-1">get_metadatas/1</a></h3>
+<div class="spec">
+<p><tt>get_metadatas(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; [<a href="#type-metadata">metadata()</a>]</tt><br></p>
+</div><p> Return a list of the metadata values for this riakc_obj.</p>
+
+<h3 class="function"><a name="get_secondary_index-2">get_secondary_index/2</a></h3>
+<div class="spec">
+<p><tt>get_secondary_index(MD::<a href="#type-metadata">metadata()</a>, X2::<a href="#type-secondary_index_id">secondary_index_id()</a>) -&gt; [<a href="#type-secondary_index_value">secondary_index_value()</a>] | notfound</tt><br></p>
+</div><p> Get value(s) for specific secondary index</p>
+
+<h3 class="function"><a name="get_secondary_indexes-1">get_secondary_indexes/1</a></h3>
+<div class="spec">
+<p><tt>get_secondary_indexes(MD::<a href="#type-metadata">metadata()</a>) -&gt; [<a href="#type-secondary_index">secondary_index()</a>]</tt><br></p>
+</div><p> Get all secondary indexes</p>
+
+<h3 class="function"><a name="get_update_content_type-1">get_update_content_type/1</a></h3>
+<div class="spec">
+<p><tt>get_update_content_type(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-content_type">content_type()</a></tt><br></p>
+</div><p>Return the content type of the update value</p>
+
+<h3 class="function"><a name="get_update_metadata-1">get_update_metadata/1</a></h3>
+<div class="spec">
+<p><tt>get_update_metadata(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Return the updated metadata of this riakc_obj.</p>
+
+<h3 class="function"><a name="get_update_value-1">get_update_value/1</a></h3>
+<div class="spec">
+<p><tt>get_update_value(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-value">value()</a></tt><br></p>
+</div><p> Return the updated value of this riakc_obj.</p>
+
+<h3 class="function"><a name="get_user_metadata_entries-1">get_user_metadata_entries/1</a></h3>
+<div class="spec">
+<p><tt>get_user_metadata_entries(MD::<a href="#type-metadata">metadata()</a>) -&gt; [<a href="#type-metadata_entry">metadata_entry()</a>]</tt><br></p>
+</div><p> Get all metadata entries</p>
+
+<h3 class="function"><a name="get_user_metadata_entry-2">get_user_metadata_entry/2</a></h3>
+<div class="spec">
+<p><tt>get_user_metadata_entry(MD::<a href="#type-metadata">metadata()</a>, Key::<a href="#type-metadata_key">metadata_key()</a>) -&gt; <a href="#type-metadata_value">metadata_value()</a> | notfound</tt><br></p>
+</div><p> Get specific metadata entry</p>
+
+<h3 class="function"><a name="get_value-1">get_value/1</a></h3>
+<div class="spec">
+<p><tt>get_value(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-value">value()</a></tt><br></p>
+</div><p>throws <tt>siblings | no_value</tt></p>
+<p>Assert that this riakc_obj has no siblings and return its
+ associated value. This function will throw <code>siblings</code> if the
+ object has siblings (value_count() &gt; 1), or <code>no_value</code> if the
+ object has no value.</p>
+
+<h3 class="function"><a name="get_values-1">get_values/1</a></h3>
+<div class="spec">
+<p><tt>get_values(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; [<a href="#type-value">value()</a>]</tt><br></p>
+</div><p> Return a list of object values for this riakc_obj.</p>
+
+<h3 class="function"><a name="key-1">key/1</a></h3>
+<div class="spec">
+<p><tt>key(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-key">key()</a></tt><br></p>
+</div><p> Return the key for this riakc_obj.</p>
+
+<h3 class="function"><a name="md_ctype-1">md_ctype/1</a></h3>
+<div class="spec">
+<p><tt>md_ctype(MetaData::<a href="#type-metadata">metadata()</a>) -&gt; undefined | <a href="#type-content_type">content_type()</a></tt><br></p>
+</div><p> Return the content type from metadata</p>
+
+<h3 class="function"><a name="new-2">new/2</a></h3>
+<div class="spec">
+<p><tt>new(Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>) -&gt; <a href="#type-riakc_obj">riakc_obj()</a></tt><br></p>
+</div><p>Constructor for new riak client objects.</p>
+
+<h3 class="function"><a name="new-3">new/3</a></h3>
+<div class="spec">
+<p><tt>new(Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, Value::<a href="#type-value">value()</a>) -&gt; <a href="#type-riakc_obj">riakc_obj()</a></tt><br></p>
+</div><p>Constructor for new riak client objects with an update value.</p>
+
+<h3 class="function"><a name="new-4">new/4</a></h3>
+<div class="spec">
+<p><tt>new(Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, Value::<a href="#type-value">value()</a>, ContentType::<a href="#type-content_type">content_type()</a>) -&gt; <a href="#type-riakc_obj">riakc_obj()</a></tt><br></p>
+</div><p>Constructor for new riak client objects with an update value and content type.</p>
+
+<h3 class="function"><a name="only_bucket-1">only_bucket/1</a></h3>
+<div class="spec">
+<p><tt>only_bucket(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; binary()</tt><br></p>
+</div><p>Return the containing bucket for this riakc_obj.</p>
+
+<h3 class="function"><a name="select_sibling-2">select_sibling/2</a></h3>
+<div class="spec">
+<p><tt>select_sibling(Index::pos_integer(), Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-riakc_obj">riakc_obj()</a></tt><br></p>
+</div><p> Select the sibling to use for update - starting from 1.</p>
+
+<h3 class="function"><a name="set_link-2">set_link/2</a></h3>
+<div class="spec">
+<p><tt>set_link(MD::<a href="#type-metadata">metadata()</a>, Link::<a href="#type-link">link()</a> | [<a href="#type-link">link()</a>]) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Set links for a specific tag</p>
+
+<h3 class="function"><a name="set_secondary_index-2">set_secondary_index/2</a></h3>
+<div class="spec">
+<p><tt>set_secondary_index(MD::<a href="#type-metadata">metadata()</a>, Rest::<a href="#type-secondary_index">secondary_index()</a> | [<a href="#type-secondary_index">secondary_index()</a>]) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Set a secondary index</p>
+
+<h3 class="function"><a name="set_user_metadata_entry-2">set_user_metadata_entry/2</a></h3>
+<div class="spec">
+<p><tt>set_user_metadata_entry(MD::<a href="#type-metadata">metadata()</a>, X2::<a href="#type-metadata_entry">metadata_entry()</a>) -&gt; <a href="#type-metadata">metadata()</a></tt><br></p>
+</div><p> Set a metadata entry</p>
+
+<h3 class="function"><a name="set_vclock-2">set_vclock/2</a></h3>
+<div class="spec">
+<p><tt>set_vclock(Object::<a href="#type-riakc_obj">riakc_obj()</a>, Vclock::<a href="#type-vclock">vclock()</a>) -&gt; <a href="#type-riakc_obj">riakc_obj()</a></tt><br></p>
+</div><p> Set the vector clock of an object</p>
+
+<h3 class="function"><a name="update_content_type-2">update_content_type/2</a></h3>
+<div class="spec">
+<p><tt>update_content_type(Object::<a href="#type-riakc_obj">riakc_obj()</a>, CT::<a href="#type-content_type">content_type()</a> | binary()) -&gt; <a href="#type-riakc_obj">riakc_obj()</a></tt><br></p>
+</div><p> Set the updated content-type of an object to CT.</p>
+
+<h3 class="function"><a name="update_metadata-2">update_metadata/2</a></h3>
+<div class="spec">
+<p><tt>update_metadata(Object::<a href="#type-riakc_obj">riakc_obj()</a>, M::<a href="#type-metadata">metadata()</a>) -&gt; <a href="#type-riakc_obj">riakc_obj()</a></tt><br></p>
+</div><p> Set the updated metadata of an object to M.</p>
+
+<h3 class="function"><a name="update_value-2">update_value/2</a></h3>
+<div class="spec">
+<p><tt>update_value(Object::<a href="#type-riakc_obj">riakc_obj()</a>, V::<a href="#type-value">value()</a>) -&gt; <a href="#type-riakc_obj">riakc_obj()</a></tt><br></p>
+</div><p> Set the updated value of an object to V</p>
+
+<h3 class="function"><a name="update_value-3">update_value/3</a></h3>
+<div class="spec">
+<p><tt>update_value(Object::<a href="#type-riakc_obj">riakc_obj()</a>, V::<a href="#type-value">value()</a>, CT::<a href="#type-content_type">content_type()</a>) -&gt; <a href="#type-riakc_obj">riakc_obj()</a></tt><br></p>
+</div><p> Set the updated value of an object to V</p>
+
+<h3 class="function"><a name="value_count-1">value_count/1</a></h3>
+<div class="spec">
+<p><tt>value_count(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; non_neg_integer()</tt><br></p>
+</div><p> Return the number of values (siblings) of this riakc_obj.</p>
+
+<h3 class="function"><a name="vclock-1">vclock/1</a></h3>
+<div class="spec">
+<p><tt>vclock(Object::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; <a href="#type-vclock">vclock()</a> | undefined</tt><br></p>
+</div><p> Return the vector clock for this riakc_obj.</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, Jun 17 2016, 06:39:45.</i></p>
+</body>
+</html>
View
1,136 riakc_pb_socket.html
@@ -0,0 +1,1136 @@
+<!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 riakc_pb_socket</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 riakc_pb_socket</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>Manages a connection to Riak via the Protocol Buffers
+ transport and executes the commands that can be performed over that
+ connection.
+
+<p><b>Behaviours:</b> <a href="gen_server.html"><tt>gen_server</tt></a>.</p>
+
+<h2><a name="description">Description</a></h2>Manages a connection to Riak via the Protocol Buffers
+ transport and executes the commands that can be performed over that
+ connection.
+<h2><a name="types">Data Types</a></h2>
+
+<h3 class="typedecl"><a name="type-address">address()</a></h3>
+<p><tt>address() = string() | atom() | <a href="inet.html#type-ip_address">inet:ip_address()</a></tt></p>
+<p> The TCP/IP host name or address of the Riak node</p>
+
+<h3 class="typedecl"><a name="type-bucket">bucket()</a></h3>
+<p><tt>bucket() = binary()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-bucket_prop">bucket_prop()</a></h3>
+<p><tt>bucket_prop() = {n_val, pos_integer()} | {allow_mult, boolean()} | {search_index, binary()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-bucket_props">bucket_props()</a></h3>
+<p><tt>bucket_props() = [<a href="#type-bucket_prop">bucket_prop()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-client_id">client_id()</a></h3>
+<p><tt>client_id() = binary()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-client_option">client_option()</a></h3>
+<p><tt>client_option() = queue_if_disconnected | {queue_if_disconnected, boolean()} | {connect_timeout, pos_integer()} | auto_reconnect | {auto_reconnect, boolean()} | keepalive | {keepalive, boolean()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-client_options">client_options()</a></h3>
+<p><tt>client_options() = [<a href="#type-client_option">client_option()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-connection_failure">connection_failure()</a></h3>
+<p><tt>connection_failure() = {Reason::term(), FailureCount::integer()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-continuation">continuation()</a></h3>
+<p><tt>continuation() = undefined | binary()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-cs_opt">cs_opt()</a></h3>
+<p><tt>cs_opt() = {timeout, timeout()} | {continuation, binary()} | {max_results, non_neg_integer() | all} | {start_key, binary()} | {start_incl, boolean()} | {end_key, binary()} | {end_incl, boolean()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-cs_opts">cs_opts()</a></h3>
+<p><tt>cs_opts() = [<a href="#type-cs_opt">cs_opt()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-delete_option">delete_option()</a></h3>
+<p><tt>delete_option() = <a href="#type-delete_quorum">delete_quorum()</a> | {n_val, pos_integer()} | {sloppy_quorum, boolean()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-delete_options">delete_options()</a></h3>
+<p><tt>delete_options() = [<a href="#type-delete_option">delete_option()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-delete_quorum">delete_quorum()</a></h3>
+<p><tt>delete_quorum() = <a href="#type-read_quorum">read_quorum()</a> | <a href="#type-write_quorum">write_quorum()</a> | {rw, ReadWriteQuorum::<a href="#type-quorum">quorum()</a>}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-get_option">get_option()</a></h3>
+<p><tt>get_option() = <a href="#type-read_quorum">read_quorum()</a> | {if_modified, <a href="riakc_obj.html#type-vclock">riakc_obj:vclock()</a>} | {notfound_ok, boolean()} | {basic_quorum, boolean()} | head | deletedvclock | {n_val, pos_integer()} | {sloppy_quorum, boolean()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-get_options">get_options()</a></h3>
+<p><tt>get_options() = [<a href="#type-get_option">get_option()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-index_opt">index_opt()</a></h3>
+<p><tt>index_opt() = {timeout, timeout()} | {call_timeout, timeout()} | {stream, boolean()} | {continuation, binary()} | {pagination_sort, boolean()} | {max_results, non_neg_integer() | all}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-index_opts">index_opts()</a></h3>
+<p><tt>index_opts() = [<a href="#type-index_opt">index_opt()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-index_results">index_results()</a></h3>
+<p><tt>index_results() = #index_results_v1{keys = undefined | <a href="#type-keys">keys()</a>, terms = undefined | <a href="#type-index_terms">index_terms()</a>, continuation = undefined | <a href="#type-continuation">continuation()</a>} | #index_body_results_v1{objects = [<a href="#type-riakc_obj">riakc_obj()</a>], continuation = undefined | <a href="#type-continuation">continuation()</a>}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-index_term">index_term()</a></h3>
+<p><tt>index_term() = integer() | binary()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-index_terms">index_terms()</a></h3>
+<p><tt>index_terms() = [{<a href="#type-index_term">index_term()</a>, binary()}] | undefined</tt></p>
+
+
+<h3 class="typedecl"><a name="type-key">key()</a></h3>
+<p><tt>key() = binary()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-keys">keys()</a></h3>
+<p><tt>keys() = [binary()] | undefined</tt></p>
+
+
+<h3 class="typedecl"><a name="type-mapred_funterm">mapred_funterm()</a></h3>
+<p><tt>mapred_funterm() = {modfun, Module::atom(), Function::atom()} | {qfun, function()} | {strfun, list() | binary()} | {jsanon, binary() | {<a href="#type-bucket">bucket()</a>, <a href="#type-key">key()</a>}} | {jsfun, binary()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-mapred_inputs">mapred_inputs()</a></h3>
+<p><tt>mapred_inputs() = [{<a href="#type-bucket">bucket()</a>, <a href="#type-key">key()</a>} | {{<a href="#type-bucket">bucket()</a>, <a href="#type-key">key()</a>}, term()}] | {modfun, Module::atom(), Function::atom(), [term()]} | <a href="#type-bucket">bucket()</a> | {index, <a href="#type-bucket">bucket()</a>, Index::binary() | <a href="#type-secondary_index_id">secondary_index_id()</a>, <a href="#type-key">key()</a> | integer()} | {index, <a href="#type-bucket">bucket()</a>, Index::binary() | <a href="#type-secondary_index_id">secondary_index_id()</a>, StartKey::<a href="#type-key">key()</a> | integer(), EndKey::<a href="#type-key">key()</a> | integer()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-mapred_queryterm">mapred_queryterm()</a></h3>
+<p><tt>mapred_queryterm() = {map, <a href="#type-mapred_funterm">mapred_funterm()</a>, Arg::term(), Accumulate::boolean()} | {reduce, <a href="#type-mapred_funterm">mapred_funterm()</a>, Arg::term(), Accumulate::boolean()} | {link, Bucket::<a href="riakc_obj.html#type-bucket">riakc_obj:bucket()</a>, Tag::term(), Accumulate::boolean()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-mapred_result">mapred_result()</a></h3>
+<p><tt>mapred_result() = [term()]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-msg_id">msg_id()</a></h3>
+<p><tt>msg_id() = non_neg_integer()</tt></p>
+<p> Request identifier for tunneled message types</p>
+
+<h3 class="typedecl"><a name="type-portnum">portnum()</a></h3>
+<p><tt>portnum() = non_neg_integer()</tt></p>
+<p> The TCP port number of the Riak node's Protocol Buffers interface</p>
+
+<h3 class="typedecl"><a name="type-preflist">preflist()</a></h3>
+<p><tt>preflist() = [#preflist_item{partition = undefined | non_neg_integer(), node = undefined | binary(), primary = undefined | boolean()}]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-put_option">put_option()</a></h3>
+<p><tt>put_option() = <a href="#type-write_quorum">write_quorum()</a> | return_body | return_head | if_not_modified | if_none_match | {n_val, pos_integer()} | {sloppy_quorum, boolean()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-put_options">put_options()</a></h3>
+<p><tt>put_options() = [<a href="#type-put_option">put_option()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-quorum">quorum()</a></h3>
+<p><tt>quorum() = non_neg_integer() | one | all | quorum | default</tt></p>
+
+
+<h3 class="typedecl"><a name="type-range_index_opt">range_index_opt()</a></h3>
+<p><tt>range_index_opt() = {return_terms, boolean()} | {term_regex, binary()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-range_index_opts">range_index_opts()</a></h3>
+<p><tt>range_index_opts() = [<a href="#type-index_opt">index_opt()</a> | <a href="#type-range_index_opt">range_index_opt()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-read_quorum">read_quorum()</a></h3>
+<p><tt>read_quorum() = {r, ReadQuorum::<a href="#type-quorum">quorum()</a>} | {pr, PrimaryReadQuorum::<a href="#type-quorum">quorum()</a>}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-req_id">req_id()</a></h3>
+<p><tt>req_id() = non_neg_integer()</tt></p>
+
+
+<h3 class="typedecl"><a name="type-riakc_obj">riakc_obj()</a></h3>
+<p><tt>riakc_obj() = <a href="riakc_obj.html#type-riakc_obj">riakc_obj:riakc_obj()</a></tt></p>
+
+
+<h3 class="typedecl"><a name="type-search_admin_opt">search_admin_opt()</a></h3>
+<p><tt>search_admin_opt() = {timeout, timeout()} | {call_timeout, timeout()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-search_admin_opts">search_admin_opts()</a></h3>
+<p><tt>search_admin_opts() = [<a href="#type-search_admin_opt">search_admin_opt()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-search_doc">search_doc()</a></h3>
+<p><tt>search_doc() = [{binary(), binary()}]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-search_index">search_index()</a></h3>
+<p><tt>search_index() = [{index, binary()} | {schema, binary()}]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-search_option">search_option()</a></h3>
+<p><tt>search_option() = {rows, non_neg_integer()} | {start, non_neg_integer()} | {sort, binary()} | {filter, binary()} | {df, binary()} | {op, binary()} | {fl, [binary()]} | {presort, binary()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-search_options">search_options()</a></h3>
+<p><tt>search_options() = [<a href="#type-search_option">search_option()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-search_result">search_result()</a></h3>
+<p><tt>search_result() = #search_results{docs = undefined | [<a href="#type-search_doc">search_doc()</a>], max_score = undefined | float(), num_found = undefined | non_neg_integer()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-search_schema">search_schema()</a></h3>
+<p><tt>search_schema() = [{name, binary()} | {content, binary()}]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-secondary_index_id">secondary_index_id()</a></h3>
+<p><tt>secondary_index_id() = {binary_index, string()} | {integer_index, string()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-server_info">server_info()</a></h3>
+<p><tt>server_info() = [<a href="#type-server_prop">server_prop()</a>]</tt></p>
+
+
+<h3 class="typedecl"><a name="type-server_prop">server_prop()</a></h3>
+<p><tt>server_prop() = {node, binary()} | {server_version, binary()}</tt></p>
+
+
+<h3 class="typedecl"><a name="type-timeout_name">timeout_name()</a></h3>
+<p><tt>timeout_name() = ping_timeout | get_client_id_timeout | set_client_id_timeout | get_server_info_timeout | get_timeout | put_timeout | delete_timeout | list_buckets_timeout | list_buckets_call_timeout | list_keys_timeout | stream_list_keys_timeout | stream_list_keys_call_timeout | get_bucket_timeout | get_bucket_call_timeout | set_bucket_timeout | set_bucket_call_timeout | mapred_timeout | mapred_call_timeout | mapred_stream_timeout | mapred_stream_call_timeout | mapred_bucket_timeout | mapred_bucket_call_timeout | mapred_bucket_stream_call_timeout | search_timeout | search_call_timeout | timeout</tt></p>
+
+
+<h3 class="typedecl"><a name="type-write_quorum">write_quorum()</a></h3>
+<p><tt>write_quorum() = {w, WriteQuorum::<a href="#type-quorum">quorum()</a>} | {dw, DurableWriteQuorum::<a href="#type-quorum">quorum()</a>} | {pw, PrimaryWriteQuorum::<a href="#type-quorum">quorum()</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="#counter_incr-4">counter_incr/4</a></td><td>increment the counter at <code>bucket</code>, <code>key</code> by <code>amount</code></td></tr>
+<tr><td valign="top"><a href="#counter_incr-5">counter_incr/5</a></td><td>increment the counter at <code>Bucket</code>, <code>Key</code> by <code>Amount</code>.</td></tr>
+<tr><td valign="top"><a href="#counter_val-3">counter_val/3</a></td><td>get the current value of the counter at <code>Bucket</code>, <code>Key</code>.</td></tr>
+<tr><td valign="top"><a href="#counter_val-4">counter_val/4</a></td><td>get the current value of the counter at <code>Bucket</code>, <code>Key</code> using
+ the <code>read_qurom()</code> <code>Options</code> provided.</td></tr>
+<tr><td valign="top"><a href="#create_search_index-2">create_search_index/2</a></td><td>Create a search index.</td></tr>
+<tr><td valign="top"><a href="#create_search_index-3">create_search_index/3</a></td><td></td></tr>
+<tr><td valign="top"><a href="#create_search_index-4">create_search_index/4</a></td><td></td></tr>
+<tr><td valign="top"><a href="#create_search_schema-3">create_search_schema/3</a></td><td>Create a schema, which is a required component of an index.</td></tr>
+<tr><td valign="top"><a href="#create_search_schema-4">create_search_schema/4</a></td><td>Create a schema, which is a required component of an index.</td></tr>
+<tr><td valign="top"><a href="#cs_bucket_fold-3">cs_bucket_fold/3</a></td><td>secret function, do not use, or I come to your house and keeel you.</td></tr>
+<tr><td valign="top"><a href="#default_timeout-1">default_timeout/1</a></td><td>Return the default timeout for an operation if none is provided.</td></tr>
+<tr><td valign="top"><a href="#delete-3">delete/3</a></td><td>Delete the key/value.</td></tr>
+<tr><td valign="top"><a href="#delete-4">delete/4</a></td><td>Delete the key/value specifying timeout or options.</td></tr>
+<tr><td valign="top"><a href="#delete-5">delete/5</a></td><td>Delete the key/value with options and timeout.</td></tr>
+<tr><td valign="top"><a href="#delete_obj-2">delete_obj/2</a></td><td>Delete the riak object.</td></tr>
+<tr><td valign="top"><a href="#delete_obj-3">delete_obj/3</a></td><td>Delete the riak object with options.</td></tr>
+<tr><td valign="top"><a href="#delete_obj-4">delete_obj/4</a></td><td>Delete the riak object with options and timeout.</td></tr>
+<tr><td valign="top"><a href="#delete_search_index-2">delete_search_index/2</a></td><td>Delete a search index.</td></tr>
+<tr><td valign="top"><a href="#delete_search_index-3">delete_search_index/3</a></td><td>Delete a search index.</td></tr>
+<tr><td valign="top"><a href="#delete_vclock-4">delete_vclock/4</a></td><td>Delete the object at Bucket/Key, giving the vector clock.</td></tr>
+<tr><td valign="top"><a href="#delete_vclock-5">delete_vclock/5</a></td><td>Delete the object at Bucket/Key, specifying timeout or options and giving the vector clock.</td></tr>
+<tr><td valign="top"><a href="#delete_vclock-6">delete_vclock/6</a></td><td>Delete the key/value with options and timeout and giving the
+ vector clock.</td></tr>
+<tr><td valign="top"><a href="#fetch_type-3">fetch_type/3</a></td><td>Fetches the representation of a convergent datatype from Riak.</td></tr>
+<tr><td valign="top"><a href="#fetch_type-4">fetch_type/4</a></td><td>Fetches the representation of a convergent datatype from Riak,
+ using the given request options.</td></tr>
+<tr><td valign="top"><a href="#get-3">get/3</a></td><td>Get bucket/key from the server.</td></tr>
+<tr><td valign="top"><a href="#get-4">get/4</a></td><td>Get bucket/key from the server specifying timeout.</td></tr>
+<tr><td valign="top"><a href="#get-5">get/5</a></td><td>Get bucket/key from the server supplying options and timeout.</td></tr>
+<tr><td valign="top"><a href="#get_bucket-2">get_bucket/2</a></td><td>Get bucket properties.</td></tr>
+<tr><td valign="top"><a href="#get_bucket-3">get_bucket/3</a></td><td>Get bucket properties specifying a server side timeout.</td></tr>
+<tr><td valign="top"><a href="#get_bucket-4">get_bucket/4</a></td><td>(<em>Deprecated</em>.) Get bucket properties specifying a server side and local call timeout.</td></tr>
+<tr><td valign="top"><a href="#get_bucket_type-2">get_bucket_type/2</a></td><td></td></tr>
+<tr><td valign="top"><a href="#get_bucket_type-3">get_bucket_type/3</a></td><td></td></tr>
+<tr><td valign="top"><a href="#get_client_id-1">get_client_id/1</a></td><td>Get the client id for this connection.</td></tr>
+<tr><td valign="top"><a href="#get_client_id-2">get_client_id/2</a></td><td>Get the client id for this connection specifying timeout.</td></tr>
+<tr><td valign="top"><a href="#get_coverage-2">get_coverage/2</a></td><td>Get minimal coverage plan.</td></tr>
+<tr><td valign="top"><a href="#get_coverage-3">get_coverage/3</a></td><td>Get parallel coverage plan if 3rd argument is &gt;= 0.</td></tr>
+<tr><td valign="top"><a href="#get_index-4">get_index/4</a></td><td>(<em>Deprecated</em>.) Execute a secondary index equality query.</td></tr>
+<tr><td valign="top"><a href="#get_index-5">get_index/5</a></td><td>(<em>Deprecated</em>.) Execute a secondary index range query.</td></tr>
+<tr><td valign="top"><a href="#get_index-6">get_index/6</a></td><td>(<em>Deprecated</em>.) Execute a secondary index equality query with specified
+ timeouts.</td></tr>
+<tr><td valign="top"><a href="#get_index-7">get_index/7</a></td><td>(<em>Deprecated</em>.) Execute a secondary index range query with specified
+ timeouts.</td></tr>
+<tr><td valign="top"><a href="#get_index_eq-4">get_index_eq/4</a></td><td>Execute a secondary index equality query.</td></tr>
+<tr><td valign="top"><a href="#get_index_eq-5">get_index_eq/5</a></td><td>Execute a secondary index equality query with specified options
+ <dl>
+ <dt>timeout:</dt> <dd>milliseconds to wait for a response from riak</dd>
+ <dt>stream:</dt> <dd> true | false. Stream results to calling process</dd>
+ <dt>continuation:</dt> <dd> The opaque, binary continuation returned from a previous query.
+ Requests the next results.</dd>
+ <dt>max_results:</dt> <dd>Positive integer, maximum number of results to return.
+ Expect a <code>continuation</code> in the response if this option is used.</dd>
+ </dl></td></tr>
+<tr><td valign="top"><a href="#get_index_range-5">get_index_range/5</a></td><td>Execute a secondary index range query.</td></tr>
+<tr><td valign="top"><a href="#get_index_range-6">get_index_range/6</a></td><td>Execute a secondary index range query with specified options.</td></tr>
+<tr><td valign="top"><a href="#get_preflist-3">get_preflist/3</a></td><td>Get active preflist.</td></tr>
+<tr><td valign="top"><a href="#get_preflist-4">get_preflist/4</a></td><td>Get active preflist specifying a server side timeout.</td></tr>
+<tr><td valign="top"><a href="#get_search_index-2">get_search_index/2</a></td><td></td></tr>
+<tr><td valign="top"><a href="#get_search_index-3">get_search_index/3</a></td><td></td></tr>
+<tr><td valign="top"><a href="#get_search_schema-2">get_search_schema/2</a></td><td></td></tr>
+<tr><td valign="top"><a href="#get_search_schema-3">get_search_schema/3</a></td><td></td></tr>
+<tr><td valign="top"><a href="#get_server_info-1">get_server_info/1</a></td><td>Get the server information for this connection.</td></tr>
+<tr><td valign="top"><a href="#get_server_info-2">get_server_info/2</a></td><td>Get the server information for this connection specifying timeout.</td></tr>
+<tr><td valign="top"><a href="#is_connected-1">is_connected/1</a></td><td>Determines whether the client is connected.</td></tr>
+<tr><td valign="top"><a href="#is_connected-2">is_connected/2</a></td><td>Determines whether the client is connected, with the specified
+ timeout to the client process.</td></tr>
+<tr><td valign="top"><a href="#legacy_list_buckets-2">legacy_list_buckets/2</a></td><td></td></tr>
+<tr><td valign="top"><a href="#list_buckets-1">list_buckets/1</a></td><td>List all buckets on the server.</td></tr>
+<tr><td valign="top"><a href="#list_buckets-2">list_buckets/2</a></td><td>List all buckets on the server specifying server-side timeout.</td></tr>
+<tr><td valign="top"><a href="#list_buckets-3">list_buckets/3</a></td><td></td></tr>
+<tr><td valign="top"><a href="#list_keys-2">list_keys/2</a></td><td>List all keys in a bucket
+ <em>This is a potentially expensive operation and should not be used in production.</em></td></tr>
+<tr><td valign="top"><a href="#list_keys-3">list_keys/3</a></td><td>List all keys in a bucket specifying timeout.</td></tr>
+<tr><td valign="top"><a href="#list_search_indexes-1">list_search_indexes/1</a></td><td></td></tr>
+<tr><td valign="top"><a href="#list_search_indexes-2">list_search_indexes/2</a></td><td></td></tr>
+<tr><td valign="top"><a href="#mapred-3">mapred/3</a></td><td>Perform a MapReduce job across the cluster.</td></tr>
+<tr><td valign="top"><a href="#mapred-4">mapred/4</a></td><td>Perform a MapReduce job across the cluster with a job timeout.</td></tr>
+<tr><td valign="top"><a href="#mapred-5">mapred/5</a></td><td>Perform a MapReduce job across the cluster with a job and
+ local call timeout.</td></tr>
+<tr><td valign="top"><a href="#mapred_bucket-3">mapred_bucket/3</a></td><td>Perform a MapReduce job against a bucket across the cluster.</td></tr>
+<tr><td valign="top"><a href="#mapred_bucket-4">mapred_bucket/4</a></td><td>Perform a MapReduce job against a bucket with a timeout
+ across the cluster.</td></tr>
+<tr><td valign="top"><a href="#mapred_bucket-5">mapred_bucket/5</a></td><td>Perform a MapReduce job against a bucket with a timeout
+ across the cluster and local call timeout.</td></tr>
+<tr><td valign="top"><a href="#mapred_bucket_stream-5">mapred_bucket_stream/5</a></td><td>Perform a streaming MapReduce job against a bucket with a timeout
+ across the cluster.</td></tr>
+<tr><td valign="top"><a href="#mapred_bucket_stream-6">mapred_bucket_stream/6</a></td><td>(<em>Deprecated</em>.) Perform a streaming MapReduce job against a bucket with a server timeout
+ across the cluster and a call timeout.</td></tr>
+<tr><td valign="top"><a href="#mapred_stream-4">mapred_stream/4</a></td><td>Perform a streaming MapReduce job across the cluster sending results
+ to ClientPid.</td></tr>
+<tr><td valign="top"><a href="#mapred_stream-5">mapred_stream/5</a></td><td>Perform a streaming MapReduce job with a timeout across the cluster.</td></tr>
+<tr><td valign="top"><a href="#mapred_stream-6">mapred_stream/6</a></td><td>(<em>Deprecated</em>.) Perform a streaming MapReduce job with a map/red timeout across the cluster,
+ a local call timeout and sending results to ClientPid.</td></tr>
+<tr><td valign="top"><a href="#modify_type-5">modify_type/5</a></td><td>Fetches, applies the given function to the value, and then
+ updates the datatype in Riak.</td></tr>
+<tr><td valign="top"><a href="#ping-1">ping/1</a></td><td>Ping the server.</td></tr>
+<tr><td valign="top"><a href="#ping-2">ping/2</a></td><td>Ping the server specifying timeout.</td></tr>
+<tr><td valign="top"><a href="#put-2">put/2</a></td><td>Put the metadata/value in the object under bucket/key.</td></tr>
+<tr><td valign="top"><a href="#put-3">put/3</a></td><td>Put the metadata/value in the object under bucket/key with options or timeout.</td></tr>
+<tr><td valign="top"><a href="#put-4">put/4</a></td><td>Put the metadata/value in the object under bucket/key with
+ options and timeout.</td></tr>
+<tr><td valign="top"><a href="#replace_coverage-3">replace_coverage/3</a></td><td></td></tr>
+<tr><td valign="top"><a href="#replace_coverage-4">replace_coverage/4</a></td><td></td></tr>
+<tr><td valign="top"><a href="#reset_bucket-2">reset_bucket/2</a></td><td>Reset bucket properties back to the defaults.</td></tr>
+<tr><td valign="top"><a href="#reset_bucket-3">reset_bucket/3</a></td><td>Reset bucket properties back to the defaults.</td></tr>
+<tr><td valign="top"><a href="#reset_bucket-4">reset_bucket/4</a></td><td>(<em>Deprecated</em>.) Reset bucket properties back to the defaults.</td></tr>
+<tr><td valign="top"><a href="#search-3">search/3</a></td><td>Execute a search query.</td></tr>
+<tr><td valign="top"><a href="#search-4">search/4</a></td><td>Execute a search query.</td></tr>
+<tr><td valign="top"><a href="#search-5">search/5</a></td><td>Execute a search query.</td></tr>
+<tr><td valign="top"><a href="#search-6">search/6</a></td><td>(<em>Deprecated</em>.) Execute a search query.</td></tr>
+<tr><td valign="top"><a href="#set_bucket-3">set_bucket/3</a></td><td>Set bucket properties.</td></tr>
+<tr><td valign="top"><a href="#set_bucket-4">set_bucket/4</a></td><td>Set bucket properties specifying a server side timeout.</td></tr>
+<tr><td valign="top"><a href="#set_bucket-5">set_bucket/5</a></td><td>(<em>Deprecated</em>.) Set bucket properties specifying a server side and local call timeout.</td></tr>
+<tr><td valign="top"><a href="#set_bucket_type-3">set_bucket_type/3</a></td><td></td></tr>
+<tr><td valign="top"><a href="#set_bucket_type-4">set_bucket_type/4</a></td><td></td></tr>
+<tr><td valign="top"><a href="#set_client_id-2">set_client_id/2</a></td><td>Set the client id for this connection.</td></tr>
+<tr><td valign="top"><a href="#set_client_id-3">set_client_id/3</a></td><td>Set the client id for this connection specifying timeout.</td></tr>
+<tr><td valign="top"><a href="#set_options-2">set_options/2</a></td><td>Change the options for this socket.</td></tr>
+<tr><td valign="top"><a href="#set_options-3">set_options/3</a></td><td>Like set_options/2, but with a gen_server timeout.</td></tr>
+<tr><td valign="top"><a href="#set_search_index-3">set_search_index/3</a></td><td></td></tr>
+<tr><td valign="top"><a href="#start-2">start/2</a></td><td>Create a process to talk with the riak server on Address:Port.</td></tr>
+<tr><td valign="top"><a href="#start-3">start/3</a></td><td>Create a process to talk with the riak server on Address:Port with Options.</td></tr>
+<tr><td valign="top"><a href="#start_link-2">start_link/2</a></td><td>Create a linked process to talk with the riak server on Address:Port
+ Client id will be assigned by the server.</td></tr>
+<tr><td valign="top"><a href="#start_link-3">start_link/3</a></td><td>Create a linked process to talk with the riak server on Address:Port with Options.</td></tr>
+<tr><td valign="top"><a href="#stop-1">stop/1</a></td><td>Disconnect the socket and stop the process.</td></tr>
+<tr><td valign="top"><a href="#stream_list_buckets-1">stream_list_buckets/1</a></td><td></td></tr>
+<tr><td valign="top"><a href="#stream_list_buckets-2">stream_list_buckets/2</a></td><td></td></tr>
+<tr><td valign="top"><a href="#stream_list_buckets-3">stream_list_buckets/3</a></td><td></td></tr>
+<tr><td valign="top"><a href="#stream_list_keys-2">stream_list_keys/2</a></td><td>Stream list of keys in the bucket to the calling process.</td></tr>
+<tr><td valign="top"><a href="#stream_list_keys-3">stream_list_keys/3</a></td><td>Stream list of keys in the bucket to the calling process specifying server side
+ timeout.</td></tr>
+<tr><td valign="top"><a href="#tunnel-4">tunnel/4</a></td><td>Send a pre-encoded msg over the protocol buffer connection
+ Returns {ok, Response} or {error, Reason}.</td></tr>
+<tr><td valign="top"><a href="#update_type-4">update_type/4</a></td><td>Updates the convergent datatype in Riak with local
+ modifications stored in the container type.</td></tr>
+<tr><td valign="top"><a href="#update_type-5">update_type/5</a></td><td>Updates the convergent datatype in Riak with local
+ modifications stored in the container type, using the given request
+ options.</td></tr>
+</table>
+
+<h2><a name="functions">Function Details</a></h2>
+
+<h3 class="function"><a name="counter_incr-4">counter_incr/4</a></h3>
+<div class="spec">
+<p><tt>counter_incr(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, Amount::integer()) -&gt; ok</tt><br></p>
+</div><p>increment the counter at <code>bucket</code>, <code>key</code> by <code>amount</code></p>
+
+<h3 class="function"><a name="counter_incr-5">counter_incr/5</a></h3>
+<div class="spec">
+<p><tt>counter_incr(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, Amount::integer(), Options::[<a href="#type-write_quorum">write_quorum()</a>]) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>increment the counter at <code>Bucket</code>, <code>Key</code> by <code>Amount</code>.
+ use the provided <code>write_quorum()</code> <code>Options</code> for the operation.
+ A counter increment is a lot like a riak <code>put</code> so the semantics
+ are the same for the given options.</p>
+
+<h3 class="function"><a name="counter_val-3">counter_val/3</a></h3>
+<div class="spec">
+<p><tt>counter_val(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>) -&gt; {ok, integer()} | {error, notfound}</tt><br></p>
+</div><p>get the current value of the counter at <code>Bucket</code>, <code>Key</code>.</p>
+
+<h3 class="function"><a name="counter_val-4">counter_val/4</a></h3>
+<div class="spec">
+<p><tt>counter_val(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, Options::[<a href="#type-read_quorum">read_quorum()</a>]) -&gt; {ok, integer()} | {error, term()}</tt><br></p>
+</div><p>get the current value of the counter at <code>Bucket</code>, <code>Key</code> using
+ the <code>read_qurom()</code> <code>Options</code> provided.</p>
+
+<h3 class="function"><a name="create_search_index-2">create_search_index/2</a></h3>
+<div class="spec">
+<p><tt>create_search_index(Pid::pid(), Index::binary()) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Create a search index.</p>
+
+<h3 class="function"><a name="create_search_index-3">create_search_index/3</a></h3>
+<div class="spec">
+<p><tt>create_search_index(Pid::pid(), Index::binary(), Timeout::timeout() | <a href="#type-search_admin_opts">search_admin_opts()</a>) -&gt; ok | {error, term()}</tt><br></p>
+</div>
+
+<h3 class="function"><a name="create_search_index-4">create_search_index/4</a></h3>
+<div class="spec">
+<p><tt>create_search_index(Pid::pid(), Index::binary(), SchemaName::binary(), Timeout::timeout() | <a href="#type-search_admin_opts">search_admin_opts()</a>) -&gt; ok | {error, term()}</tt><br></p>
+</div>
+
+<h3 class="function"><a name="create_search_schema-3">create_search_schema/3</a></h3>
+<div class="spec">
+<p><tt>create_search_schema(Pid::pid(), SchemaName::binary(), Content::binary()) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Create a schema, which is a required component of an index.</p>
+
+<h3 class="function"><a name="create_search_schema-4">create_search_schema/4</a></h3>
+<div class="spec">
+<p><tt>create_search_schema(Pid::pid(), SchemaName::binary(), Content::binary(), Opts::<a href="#type-search_admin_opts">search_admin_opts()</a>) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Create a schema, which is a required component of an index.</p>
+
+<h3 class="function"><a name="cs_bucket_fold-3">cs_bucket_fold/3</a></h3>
+<div class="spec">
+<p><tt>cs_bucket_fold(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Opts::<a href="#type-cs_opts">cs_opts()</a>) -&gt; {ok, reference()} | {error, term()}</tt><br></p>
+</div><p>secret function, do not use, or I come to your house and keeel you.</p>
+
+<h3 class="function"><a name="default_timeout-1">default_timeout/1</a></h3>
+<div class="spec">
+<p><tt>default_timeout(OpTimeout::<a href="#type-timeout_name">timeout_name()</a>) -&gt; timeout()</tt><br></p>
+</div><p>Return the default timeout for an operation if none is provided.
+ Falls back to the default timeout.</p>
+
+<h3 class="function"><a name="delete-3">delete/3</a></h3>
+<div class="spec">
+<p><tt>delete(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Equivalent to <a href="#delete-4"><tt>delete(Pid, Bucket, Key, [])</tt></a>.</p>
+<p>Delete the key/value</p>
+
+<h3 class="function"><a name="delete-4">delete/4</a></h3>
+<div class="spec">
+<p><tt>delete(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, TimeoutOrOptions::timeout() | <a href="#type-delete_options">delete_options()</a>) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Equivalent to <a href="#delete-5"><tt>delete(Pid, Bucket, Key, Options, Timeout)</tt></a>.</p>
+<p>Delete the key/value specifying timeout or options. <em>Note that the rw quorum is deprecated, use r and w.</em></p>
+
+<h3 class="function"><a name="delete-5">delete/5</a></h3>
+<div class="spec">
+<p><tt>delete(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, Options::<a href="#type-delete_options">delete_options()</a>, Timeout::timeout()) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Delete the key/value with options and timeout. <em>Note that the rw quorum is deprecated, use r and w.</em></p>
+
+<h3 class="function"><a name="delete_obj-2">delete_obj/2</a></h3>
+<div class="spec">
+<p><tt>delete_obj(Pid::pid(), Obj::<a href="#type-riakc_obj">riakc_obj()</a>) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Equivalent to <a href="#delete_vclock-4"><tt>delete_vclock(Pid, riakc_obj:bucket(Obj),
+ riakc_obj:key(Obj), riakc_obj:vclock(Obj))</tt></a>.</p>
+<p>Delete the riak object.</p>
+<p><b>See also:</b> <a href="#delete_vclock-6">delete_vclock/6</a>.</p>
+
+<h3 class="function"><a name="delete_obj-3">delete_obj/3</a></h3>
+<div class="spec">
+<p><tt>delete_obj(Pid::pid(), Obj::<a href="#type-riakc_obj">riakc_obj()</a>, Options::<a href="#type-delete_options">delete_options()</a>) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Equivalent to <a href="#delete_vclock-5"><tt>delete_vclock(Pid, riakc_obj:bucket(Obj),
+ riakc_obj:key(Obj), riakc_obj:vclock(Obj), Options)</tt></a>.</p>
+<p>Delete the riak object with options.</p>
+<p><b>See also:</b> <a href="#delete_vclock-6">delete_vclock/6</a>.</p>
+
+<h3 class="function"><a name="delete_obj-4">delete_obj/4</a></h3>
+<div class="spec">
+<p><tt>delete_obj(Pid::pid(), Obj::<a href="#type-riakc_obj">riakc_obj()</a>, Options::<a href="#type-delete_options">delete_options()</a>, Timeout::timeout()) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Equivalent to <a href="#delete_vclock-6"><tt>delete_vclock(Pid, riakc_obj:bucket(Obj),
+ riakc_obj:key(Obj), riakc_obj:vclock(Obj), Options,
+ Timeout)</tt></a>.</p>
+<p>Delete the riak object with options and timeout.</p>
+<p><b>See also:</b> <a href="#delete_vclock-6">delete_vclock/6</a>.</p>
+
+<h3 class="function"><a name="delete_search_index-2">delete_search_index/2</a></h3>
+<div class="spec">
+<p><tt>delete_search_index(Pid::pid(), Index::binary()) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Delete a search index.</p>
+
+<h3 class="function"><a name="delete_search_index-3">delete_search_index/3</a></h3>
+<div class="spec">
+<p><tt>delete_search_index(Pid::pid(), Index::binary(), Opts::<a href="#type-search_admin_opts">search_admin_opts()</a>) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Delete a search index.</p>
+
+<h3 class="function"><a name="delete_vclock-4">delete_vclock/4</a></h3>
+<div class="spec">
+<p><tt>delete_vclock(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, VClock::<a href="riakc_obj.html#type-vclock">riakc_obj:vclock()</a>) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Equivalent to <a href="#delete_vclock-5"><tt>delete_vclock(Pid, Bucket, Key, VClock, [])</tt></a>.</p>
+<p>Delete the object at Bucket/Key, giving the vector clock.</p>
+
+<h3 class="function"><a name="delete_vclock-5">delete_vclock/5</a></h3>
+<div class="spec">
+<p><tt>delete_vclock(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, VClock::<a href="riakc_obj.html#type-vclock">riakc_obj:vclock()</a>, TimeoutOrOptions::timeout() | <a href="#type-delete_options">delete_options()</a>) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Equivalent to <a href="#delete_vclock-6"><tt>delete_vclock(Pid, Bucket, Key, VClock, Options,
+ Timeout)</tt></a>.</p>
+<p>Delete the object at Bucket/Key, specifying timeout or options and giving the vector clock.</p>
+
+<h3 class="function"><a name="delete_vclock-6">delete_vclock/6</a></h3>
+<div class="spec">
+<p><tt>delete_vclock(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, VClock::<a href="riakc_obj.html#type-vclock">riakc_obj:vclock()</a>, Options::<a href="#type-delete_options">delete_options()</a>, Timeout::timeout()) -&gt; ok | {error, term()}</tt><br></p>
+</div><p>Delete the key/value with options and timeout and giving the
+ vector clock. This form of delete ensures that subsequent get and
+ put requests will be correctly ordered with the delete.</p>
+<p><b>See also:</b> <a href="#delete_obj-4">delete_obj/4</a>.</p>
+
+<h3 class="function"><a name="fetch_type-3">fetch_type/3</a></h3>
+<div class="spec">
+<p><tt>fetch_type(Pid::pid(), BucketAndType::{BucketType::binary(), Bucket::binary()}, Key::binary()) -&gt; {ok, <a href="riakc_datatype.html#type-datatype">riakc_datatype:datatype()</a>} | {error, term()}</tt><br></p>
+</div><p>Fetches the representation of a convergent datatype from Riak.</p>
+
+<h3 class="function"><a name="fetch_type-4">fetch_type/4</a></h3>
+<div class="spec">
+<p><tt>fetch_type(Pid::pid(), BucketAndType::{BucketType::binary(), Bucket::binary()}, Key::binary(), Options::[<a href="proplists.html#type-property">proplists:property()</a>]) -&gt; {ok, <a href="riakc_datatype.html#type-datatype">riakc_datatype:datatype()</a>} | {error, term()}</tt><br></p>
+</div><p>Fetches the representation of a convergent datatype from Riak,
+ using the given request options.</p>
+
+<h3 class="function"><a name="get-3">get/3</a></h3>
+<div class="spec">
+<p><tt>get(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>) -&gt; {ok, <a href="#type-riakc_obj">riakc_obj()</a>} | {error, term()}</tt><br></p>
+</div><p>Equivalent to <a href="#get-5"><tt>get(Pid, Bucket, Key, [], default_timeout(get_timeout))</tt></a>.</p>
+<p>Get bucket/key from the server.
+ Will return {error, notfound} if the key is not on the server.</p>
+
+<h3 class="function"><a name="get-4">get/4</a></h3>
+<div class="spec">
+<p><tt>get(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, TimeoutOrOptions::timeout() | <a href="#type-get_options">get_options()</a>) -&gt; {ok, <a href="#type-riakc_obj">riakc_obj()</a>} | {error, term()} | unchanged</tt><br></p>
+</div><p>Equivalent to <a href="#get-5"><tt>get(Pid, Bucket, Key, Options, Timeout)</tt></a>.</p>
+<p>Get bucket/key from the server specifying timeout.
+ Will return {error, notfound} if the key is not on the server.</p>
+
+<h3 class="function"><a name="get-5">get/5</a></h3>
+<div class="spec">
+<p><tt>get(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>, Key::<a href="#type-key">key()</a>, Options::<a href="#type-get_options">get_options()</a>, Timeout::timeout()) -&gt; {ok, <a href="#type-riakc_obj">riakc_obj()</a>} | {error, term()} | unchanged</tt><br></p>
+</div><p>Get bucket/key from the server supplying options and timeout.
+ <code>unchanged</code> will be returned when the
+ <code>{if_modified, Vclock}</code> option is specified and the
+ object is unchanged.</p>
+
+<h3 class="function"><a name="get_bucket-2">get_bucket/2</a></h3>
+<div class="spec">
+<p><tt>get_bucket(Pid::pid(), Bucket::<a href="#type-bucket">bucket()</a>) -&gt; {ok, <a href="#type-bucket_props">bucket_props()</a>} | {error, term()}</tt><br></p>
+</div><p>Equivalent to <a href="#get_bucket-3"><tt>get_bucket(Pid, Bucket,
+ default_timeout(get_bucket_timeout))</tt></a>.</p>