Current section
Files
Jump to
Current section
Files
examples/exploriak/_build/test/lib/riakc/include/riakc.hrl
%% -------------------------------------------------------------------
%%
%% riakc: protocol buffer client
%%
%% Copyright (c) 2007-2012 Basho Technologies, Inc. All Rights Reserved.
%%
%% This file is provided to you under the Apache License,
%% Version 2.0 (the "License"); you may not use this file
%% except in compliance with the License. You may obtain
%% a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing,
%% software distributed under the License is distributed on an
%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
%% KIND, either express or implied. See the License for the
%% specific language governing permissions and limitations
%% under the License.
%%
%% -------------------------------------------------------------------
-define(PROTO_MAJOR, 1).
-define(PROTO_MINOR, 0).
-define(DEFAULT_PB_TIMEOUT, 60000).
-define(FIRST_RECONNECT_INTERVAL, 100).
-define(MAX_RECONNECT_INTERVAL, 30000).
-type client_option() :: queue_if_disconnected |
{queue_if_disconnected, boolean()} |
{connect_timeout, pos_integer()} |
auto_reconnect |
{auto_reconnect, boolean()} |
keepalive |
{keepalive, boolean()}.
%% Options for starting or modifying the connection:
%% `queue_if_disconnected' when present or true will cause requests to
%% be queued while the connection is down. `auto_reconnect' when
%% present or true will automatically attempt to reconnect to the
%% server if the connection fails or is lost.
-type client_options() :: [client_option()]. %% A list of client options.
-type client_id() :: binary(). %% A client identifier, used for differentiating client processes
-type bucket() :: binary(). %% A bucket name.
-type key() :: binary(). %% A key name.
-type riakc_obj() :: riakc_obj:riakc_obj(). %% An object (bucket, key, metadata, value) stored in Riak.
-type req_id() :: non_neg_integer(). %% Request identifier for streaming requests.
-type server_prop() :: {node, binary()} | {server_version, binary()}. %% Server properties, as returned by the `get_server_info/1' call.
-type server_info() :: [server_prop()]. %% A response from the `get_server_info/1' call.
-type bucket_prop() :: {n_val, pos_integer()} | {allow_mult, boolean()} | {search_index, binary()}. %% Bucket property definitions.
-type bucket_props() :: [bucket_prop()]. %% Bucket properties
-type quorum() :: non_neg_integer() | one | all | quorum | default. %% A quorum setting for get/put/delete requests.
-type read_quorum() :: {r, ReadQuorum::quorum()} |
{pr, PrimaryReadQuorum::quorum()}. %% Valid quorum options for get requests.
-type write_quorum() :: {w, WriteQuorum::quorum()} |
{dw, DurableWriteQuorum::quorum()} |
{pw, PrimaryWriteQuorum::quorum()}. %% Valid quorum options for write requests.
-type delete_option() :: delete_quorum() |
{n_val, pos_integer()} |
{sloppy_quorum, boolean()}.
-type delete_quorum() :: read_quorum() |
write_quorum() |
{rw, ReadWriteQuorum::quorum()}. %% Valid quorum options for delete requests. Note that `rw' is deprecated in Riak 1.0 and later.
-type get_option() :: read_quorum() |
{if_modified, riakc_obj:vclock()} |
{notfound_ok, boolean()} |
{basic_quorum, boolean()} |
head | deletedvclock |
{n_val, pos_integer()} |
{sloppy_quorum, boolean()}.
%% Valid request options for get requests. When `if_modified' is
%% specified with a vclock, the request will fail if the object has
%% not changed. When `head' is specified, only the metadata will be
%% returned. When `deletedvclock' is specified, the vector clock of
%% the tombstone will be returned if the object has been recently
%% deleted.
-type put_option() :: write_quorum() | return_body | return_head | if_not_modified | if_none_match |
{n_val, pos_integer()} |
{sloppy_quorum, boolean()}.
%% Valid request options for put requests. `return_body' returns the
%% entire result of storing the object. `return_head' returns the
%% metadata from the result of storing the object. `if_not_modified'
%% will cause the request to fail if the local and remote vclocks do
%% not match. `if_none_match' will cause the request to fail if the
%% object already exists in Riak.
-type get_options() :: [get_option()]. %% A list of options for a get request.
-type put_options() :: [put_option()]. %% A list of options for a put request.
-type search_options() :: [search_option()]. %% A list of options for a search request.
-type delete_options() :: [delete_option()]. %% A list of options for a delete request.
-type mapred_queryterm() :: {map, mapred_funterm(), Arg::term(), Accumulate :: boolean()} |
{reduce, mapred_funterm(), Arg::term(),Accumulate :: boolean()} |
{link, Bucket :: riakc_obj:bucket(), Tag :: term(), Accumulate :: boolean()}.
%% A MapReduce phase specification. `map' functions operate on single
%% K/V objects. `reduce' functions operate across collections of
%% inputs from other phases. `link' is a special type of map phase
%% that matches links in the fetched objects. The `Arg' parameter will
%% be passed as the last argument to the phase function. The
%% `Accumulate' param determines whether results from this phase will
%% be returned to the client.
-type mapred_funterm() :: {modfun, Module :: atom(), Function :: atom()} |
{qfun, function()} |
{strfun, list() | binary()} |
{jsanon, binary() | {bucket(), key()}} |
{jsfun, binary()}.
%% A MapReduce phase function specification. `modfun' requires that
%% the compiled module be available on all Riak nodes. `qfun' will
%% only work from the shell (compiled fun() terms refer to compiled
%% code only). `strfun' contains the textual source of an Erlang
%% function but the functionality must be enabled on the Riak cluster.
%% `jsanon' either contains javascript code that will be evaluated
%% as an anonymous function, or a bucket-value pair, pointing
%% to a record stored in riak containing the source of an anonymous
%% javascript function. `jsfun' contains the name of a javascript
%% function, that when evaluated points to a built-in javascript function.
-type mapred_result() :: [term()].
%% The results of a MapReduce job.
-type mapred_inputs() :: [{bucket(), key()} | {{bucket(), key()}, term()}] |
{modfun, Module::atom(), Function::atom(), [term()]} |
bucket() |
{index, bucket(), Index::binary()|secondary_index_id(), key()|integer()} |
{index, bucket(), Index::binary()|secondary_index_id(), StartKey::key()|integer(), EndKey::key()|integer()}.
%% Inputs for a MapReduce job.
-type connection_failure() :: {Reason::term(), FailureCount::integer()}.
%% The reason for connection failure and how many times that type of
%% failure has occurred since startup.
-type 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.
-type continuation() :: 'undefined' | binary().
-type secondary_index_id() :: {binary_index, string()} | {integer_index, string()}.
-type index_term() :: integer() | binary().
-type keys() :: [binary()] | 'undefined'.
-type index_terms() :: [{index_term(), binary()}] | 'undefined'.
-record(index_results_v1, {
keys :: keys(),
terms :: index_terms(),
continuation :: continuation()
}).
-define(INDEX_RESULTS, #index_results_v1).
-type index_results() :: #index_results_v1{}.
-record(index_stream_result_v1, {
keys :: keys(),
terms :: index_terms()
}).
-define(INDEX_STREAM_RESULT, #index_stream_result_v1).
-type index_stream_result() :: #index_stream_result_v1{}.
-type index_done() :: {'done', continuation()}.
-type search_option() ::
{rows, non_neg_integer()} | %% Limit rows
{start, non_neg_integer()} | %% Starting offset
{sort, binary()} | %% sort order
{filter, binary()} | %% Inline fields filtering query
{df, binary() } | %% Default field
{op, binary() } | %% Default op
{fl, [binary()]} | %% Return fields limit (for ids only, generally)
{presort, binary()}. %% Presor (key / score)
-type search_doc() :: [{binary(), binary()}].
-type search_maxscore() :: float().
-type search_number_found() :: non_neg_integer().
-record(search_results, {
docs :: [search_doc()], %% Result documents
max_score :: float(), %% Maximum score
num_found :: non_neg_integer() %% Number of results
}).
-type search_result() :: #search_results{}.
-type search_index() :: [{index, binary()} |
{schema, binary()}].
-type search_schema() :: [{name, binary()} |
{content, binary()}].