Behaviours: gen_fsm.
change_error() = already_member | not_member
ensemble_id() = term()
epoch() = integer()
fact() = #fact{epoch = epoch(), seq = seq(), leader = peer_id(), view_vsn = {epoch(), seq()}, pend_vsn = {epoch(), seq()}, commit_vsn = {epoch(), seq()}, pending = {vsn(), views()}, views = [[peer_id()]]}
fsm_from() = {term(), term()}
key() = any()
leader_id() = undefined | peer_id()
modify_fun() = function() | {module(), atom(), term()}
next_state() = {next_state, atom(), state()} | {stop, normal, state()}
obj() = any()
peer_change() = term()
peer_id() = {term(), node()}
seq() = integer()
state() = #state{id = peer_id(), ensemble = ensemble_id(), ets = ets:tid(), fact = fact(), awaiting = riak_ensemble_msg:msg_state(), preliminary = {peer_id(), epoch()}, abandoned = {epoch(), seq()}, timer = timer(), ready = boolean(), members = [peer_id()], peers = [{peer_id(), pid()}], mod = module(), modstate = any(), workers = tuple(), tree_trust = boolean(), tree_ready = boolean(), alive = integer(), last_views = [[peer_id()]], async = pid(), tree = pid(), lease = riak_ensemble_lease:lease_ref(), watchers = [{pid(), reference()}], self = pid()}
std_reply() = timeout | failed | unavailable | nack | {ok, term()}
sync_next_state() = {reply, term(), atom(), state()} | {next_state, atom(), state()} | {stop, normal, state()}
target() = pid() | ensemble_id()
timer() = term()
views() = [[peer_id()]]
backend_pong(Pid) -> any()
check_quorum(Ensemble::ensemble_id(), Timeout::timeout()) -> ok | timeout
code_change(OldVsn::term(), StateName::atom(), State::state(), Extra::term()) -> {ok, atom(), state()}
count_quorum(Ensemble::ensemble_id(), Timeout::timeout()) -> integer() | timeout
do_kmodify(Obj, NextSeq, State, X4) -> any()
do_kput_once(Obj, NextSeq, State, X4) -> any()
do_kupdate(Obj, NextSeq, State, X4) -> any()
election(Msg::term(), State::state()) -> next_state()
election(Msg::term(), From::fsm_from(), State::state()) -> {next_state, election, state()}
exchange(Msg, State) -> any()
exchange(Msg, From, State) -> any()
following(Msg::term(), State::state()) -> next_state()
following(Msg::term(), From::fsm_from(), State::state()) -> {next_state, following, state()}
force_state(Pid, EpochSeq) -> any()
get_info(Pid) -> any()
get_leader(Pid::pid()) -> peer_id()
handle_info(Info, StateName, State) -> any()
handle_sync_event(Event::term(), From::term(), StateName::atom(), State::state()) -> {reply, ok, atom(), state()} | {reply, ensemble_id(), atom(), state()} | {stop, normal, ok, state()}
init(X1::[any(), ...]) -> {ok, setup, state()}
join(Pid::pid(), Id::peer_id(), Timeout::timeout()) -> ok | timeout | {error, [{already_member, peer_id()}]}
kdelete(Node::node(), Target::target(), Key::key(), Timeout::timeout()) -> std_reply()
kget(Node::node(), Target::target(), Key::key(), Timeout::timeout()) -> std_reply()
kget(Node::node(), Target::target(), Key::key(), Timeout::timeout(), Opts::term()) -> std_reply()
kmodify(Node::node(), Target::target(), Key::key(), ModFun::modify_fun(), Default::term(), Timeout::timeout()) -> std_reply()
kover(Node::node(), Target::target(), Key::key(), New::obj(), Timeout::timeout()) -> std_reply()
kput_once(Node::node(), Target::target(), Key::key(), New::obj(), Timeout::timeout()) -> std_reply()
ksafe_delete(Node::node(), Target::target(), Key::key(), Current::obj(), Timeout::timeout()) -> std_reply()
kupdate(Node::node(), Target::target(), Key::key(), Current::obj(), New::term(), Timeout::timeout()) -> std_reply()
leading(Msg::term(), State::state()) -> next_state()
leading(Msg::term(), From::fsm_from(), State::state()) -> sync_next_state()
pending(Msg, State) -> any()
pending(Msg, From, State) -> any()
ping_quorum(Ensemble::ensemble_id(), Timeout::timeout()) -> {leader_id(), boolean(), [peer_id()]} | timeout
prefollow(Msg, State) -> any()
prefollow(Msg, From, State) -> any()
prelead(Msg, State) -> any()
prelead(Msg, From, State) -> any()
prepare(Msg::term(), State::state()) -> next_state()
prepare(Msg::term(), From::fsm_from(), State::state()) -> {next_state, prepare, state()}
probe(Msg::term(), State::state()) -> next_state()
probe(Msg::term(), From::fsm_from(), State::state()) -> {next_state, probe, state()}
repair(Msg, State) -> any()
repair(Msg::term(), From::fsm_from(), State::state()) -> {next_state, repair, state()}
setup(X1, State0) -> any()
stable_views(Ensemble::ensemble_id(), Timeout::timeout()) -> {ok, boolean()} | timeout
start(Mod::module(), Ensemble::ensemble_id(), Id::peer_id(), Args::[any()]) -> ignore | {error, term()} | {ok, pid()}
start_link(Mod::module(), Ensemble::ensemble_id(), Id::peer_id(), Args::[any()]) -> ignore | {error, term()} | {ok, pid()}
stop_watching(Pid::pid()) -> ok
terminate(Reason::term(), StateName::term(), State::term()) -> ok
tree_info(Pid) -> any()
update_members(Pid::pid(), Changes::[peer_change()], Timeout::timeout()) -> ok | timeout | {error, [{change_error(), peer_id()}]}
valid_obj_hash(ActualHash, KnownHash) -> any()
watch_leader_status(Pid::pid()) -> ok
Generated by EDoc