Commit f1b9f401 authored by Willem Thiart's avatar Willem Thiart
Browse files

Add raft_clear

parent 08c63427
......@@ -327,6 +327,9 @@ raft_server_t* raft_new();
* Frees all memory */
void raft_free(raft_server_t* me);
/** De-initialise Raft server. */
void raft_clear(raft_server_t* me);
/** Set callbacks and user data.
*
* @param[in] funcs Callbacks
......
......@@ -9,6 +9,8 @@ void log_set_callbacks(log_t* me_, raft_cbs_t* funcs, void* raft);
void log_free(log_t* me_);
void log_clear(log_t* me_);
/**
* Add entry to log.
* Don't add entry if we've already added this entry (based off ID)
......
......@@ -87,6 +87,15 @@ void log_set_callbacks(log_t* me_, raft_cbs_t* funcs, void* raft)
me->cb = funcs;
}
void log_clear(log_t* me_)
{
log_private_t* me = (log_private_t*)me_;
me->count = 0;
me->back = 0;
me->front = 0;
me->base = 0;
}
int log_append_entry(log_t* me_, raft_entry_t* c)
{
log_private_t* me = (log_private_t*)me_;
......
......@@ -71,6 +71,24 @@ void raft_free(raft_server_t* me_)
free(me_);
}
void raft_clear(raft_server_t* me_)
{
raft_server_private_t* me = (raft_server_private_t*)me_;
me->current_term = 0;
me->voted_for = -1;
me->timeout_elapsed = 0;
me->voting_cfg_change_log_idx = -1;
raft_set_state((raft_server_t*)me, RAFT_STATE_FOLLOWER);
me->current_leader = NULL;
me->commit_idx = 0;
me->last_applied_idx = 0;
me->num_nodes = 0;
me->node = NULL;
me->voting_cfg_change_log_idx = 0;
log_clear(me->log);
}
void raft_election_start(raft_server_t* me_)
{
raft_server_private_t* me = (raft_server_private_t*)me_;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment