Commit 5e9e46ec authored by Willem Thiart's avatar Willem Thiart
Browse files

Header file cleanup

parent 2a50ff78
...@@ -5,14 +5,15 @@ ...@@ -5,14 +5,15 @@
/** /**
* Copyright (c) 2013, Willem-Hendrik Thiart * Copyright (c) 2013, Willem-Hendrik Thiart
* Use of this source code is governed by a BSD-style license that can be * Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. * found in the LICENSE file.
* *
* @file * @file
* @author Willem Thiart himself@willemthiart.com * @author Willem Thiart himself@willemthiart.com
* @version 0.1 * @version 0.1
*/ */
typedef struct { typedef struct
{
/** The ID that this node used to have. /** The ID that this node used to have.
* So that we can tell which nodes were removed/added when the * So that we can tell which nodes were removed/added when the
* configuration changes */ * configuration changes */
...@@ -25,7 +26,8 @@ typedef struct { ...@@ -25,7 +26,8 @@ typedef struct {
void* udata_address; void* udata_address;
} raft_node_configuration_t; } raft_node_configuration_t;
typedef struct { typedef struct
{
/* candidate's term */ /* candidate's term */
int term; int term;
...@@ -39,7 +41,8 @@ typedef struct { ...@@ -39,7 +41,8 @@ typedef struct {
int last_log_term; int last_log_term;
} msg_requestvote_t; } msg_requestvote_t;
typedef struct { typedef struct
{
/* the entry's unique ID */ /* the entry's unique ID */
unsigned int id; unsigned int id;
...@@ -50,7 +53,8 @@ typedef struct { ...@@ -50,7 +53,8 @@ typedef struct {
unsigned int len; unsigned int len;
} msg_entry_t; } msg_entry_t;
typedef struct { typedef struct
{
/* the entry's unique ID */ /* the entry's unique ID */
unsigned int id; unsigned int id;
...@@ -58,7 +62,8 @@ typedef struct { ...@@ -58,7 +62,8 @@ typedef struct {
int was_committed; int was_committed;
} msg_entry_response_t; } msg_entry_response_t;
typedef struct { typedef struct
{
/* currentTerm, for candidate to update itself */ /* currentTerm, for candidate to update itself */
int term; int term;
...@@ -66,7 +71,8 @@ typedef struct { ...@@ -66,7 +71,8 @@ typedef struct {
int vote_granted; int vote_granted;
} msg_requestvote_response_t; } msg_requestvote_response_t;
typedef struct { typedef struct
{
int term; int term;
int leader_id; int leader_id;
int prev_log_idx; int prev_log_idx;
...@@ -76,7 +82,8 @@ typedef struct { ...@@ -76,7 +82,8 @@ typedef struct {
int leader_commit; int leader_commit;
} msg_appendentries_t; } msg_appendentries_t;
typedef struct { typedef struct
{
/* currentTerm, for leader to update itself */ /* currentTerm, for leader to update itself */
int term; int term;
...@@ -96,7 +103,8 @@ typedef struct { ...@@ -96,7 +103,8 @@ typedef struct {
typedef void* raft_server_t; typedef void* raft_server_t;
typedef void* raft_node_t; typedef void* raft_node_t;
typedef enum { typedef enum
{
RAFT_MSG_REQUESTVOTE, RAFT_MSG_REQUESTVOTE,
RAFT_MSG_REQUESTVOTE_RESPONSE, RAFT_MSG_REQUESTVOTE_RESPONSE,
RAFT_MSG_APPENDENTRIES, RAFT_MSG_APPENDENTRIES,
...@@ -105,31 +113,19 @@ typedef enum { ...@@ -105,31 +113,19 @@ typedef enum {
RAFT_MSG_ENTRY_RESPONSE, RAFT_MSG_ENTRY_RESPONSE,
} raft_message_type_e; } raft_message_type_e;
typedef int (
*func_send_f
) (
raft_server_t* raft,
void *udata,
int node,
raft_message_type_e msg_type,
const unsigned char *send_data,
const int len
);
/** /**
* @param raft The Raft server making this callback * @param raft The Raft server making this callback
* @param udata User data that is passed from Raft server * @param udata User data that is passed from Raft server
* @param node The peer's ID that we are sending this message to * @param node The peer's ID that we are sending this message to
* @return 0 on error */ * @return 0 on error */
typedef int ( typedef int (
*func_send_requestvote_f *func_send_requestvote_f
) ( ) (
raft_server_t* raft, raft_server_t* raft,
void *udata, void *udata,
int node, int node,
msg_requestvote_t* msg msg_requestvote_t* msg
); );
/** /**
* @param raft The Raft server making this callback * @param raft The Raft server making this callback
...@@ -137,13 +133,13 @@ typedef int ( ...@@ -137,13 +133,13 @@ typedef int (
* @param node The peer's ID that we are sending this message to * @param node The peer's ID that we are sending this message to
* @return 0 on error */ * @return 0 on error */
typedef int ( typedef int (
*func_send_requestvote_response_f *func_send_requestvote_response_f
) ( ) (
raft_server_t* raft, raft_server_t* raft,
void *udata, void *udata,
int node, int node,
msg_requestvote_response_t* msg msg_requestvote_response_t* msg
); );
/** /**
* @param raft The Raft server making this callback * @param raft The Raft server making this callback
...@@ -151,13 +147,13 @@ typedef int ( ...@@ -151,13 +147,13 @@ typedef int (
* @param node The peer's ID that we are sending this message to * @param node The peer's ID that we are sending this message to
* @return 0 on error */ * @return 0 on error */
typedef int ( typedef int (
*func_send_appendentries_f *func_send_appendentries_f
) ( ) (
raft_server_t* raft, raft_server_t* raft,
void *udata, void *udata,
int node, int node,
msg_appendentries_t* msg msg_appendentries_t* msg
); );
/** /**
* @param raft The Raft server making this callback * @param raft The Raft server making this callback
...@@ -165,13 +161,13 @@ typedef int ( ...@@ -165,13 +161,13 @@ typedef int (
* @param node The peer's ID that we are sending this message to * @param node The peer's ID that we are sending this message to
* @return 0 on error */ * @return 0 on error */
typedef int ( typedef int (
*func_send_appendentries_response_f *func_send_appendentries_response_f
) ( ) (
raft_server_t* raft, raft_server_t* raft,
void *udata, void *udata,
int node, int node,
msg_appendentries_response_t* msg msg_appendentries_response_t* msg
); );
/** /**
* @param raft The Raft server making this callback * @param raft The Raft server making this callback
...@@ -179,13 +175,13 @@ typedef int ( ...@@ -179,13 +175,13 @@ typedef int (
* @param node The peer's ID that we are sending this message to * @param node The peer's ID that we are sending this message to
* @return 0 on error */ * @return 0 on error */
typedef int ( typedef int (
*func_send_entries_f *func_send_entries_f
) ( ) (
raft_server_t* raft, raft_server_t* raft,
void *udata, void *udata,
int node, int node,
msg_entry_t* msg msg_entry_t* msg
); );
/** /**
* @param raft The Raft server making this callback * @param raft The Raft server making this callback
...@@ -193,24 +189,24 @@ typedef int ( ...@@ -193,24 +189,24 @@ typedef int (
* @param node The peer's ID that we are sending this message to * @param node The peer's ID that we are sending this message to
* @return 0 on error */ * @return 0 on error */
typedef int ( typedef int (
*func_send_entries_response_f *func_send_entries_response_f
) ( ) (
raft_server_t* raft, raft_server_t* raft,
void *udata, void *udata,
int node, int node,
msg_entry_response_t* msg msg_entry_response_t* msg
); );
#ifndef HAVE_FUNC_LOG #ifndef HAVE_FUNC_LOG
#define HAVE_FUNC_LOG #define HAVE_FUNC_LOG
typedef void ( typedef void (
*func_log_f *func_log_f
) ( ) (
raft_server_t* raft, raft_server_t* raft,
void *udata, void *udata,
const char *buf, const char *buf,
... ...
); );
#endif #endif
/** /**
...@@ -221,15 +217,16 @@ typedef void ( ...@@ -221,15 +217,16 @@ typedef void (
* @param len Length in bytes of data to be applied * @param len Length in bytes of data to be applied
* @return 0 on error */ * @return 0 on error */
typedef int ( typedef int (
*func_applylog_f *func_applylog_f
) ( ) (
raft_server_t* raft, raft_server_t* raft,
void *udata, void *udata,
const unsigned char *data, const unsigned char *data,
const int len const int len
); );
typedef struct { typedef struct
{
func_send_requestvote_f send_requestvote; func_send_requestvote_f send_requestvote;
func_send_requestvote_response_f send_requestvote_response; func_send_requestvote_response_f send_requestvote_response;
func_send_appendentries_f send_appendentries; func_send_appendentries_f send_appendentries;
...@@ -240,7 +237,8 @@ typedef struct { ...@@ -240,7 +237,8 @@ typedef struct {
func_applylog_f applylog; func_applylog_f applylog;
} raft_cbs_t; } raft_cbs_t;
typedef struct { typedef struct
{
/* entry's term */ /* entry's term */
unsigned int term; unsigned int term;
/* the entry's unique ID */ /* the entry's unique ID */
...@@ -272,7 +270,7 @@ void raft_free(raft_server_t* me_); ...@@ -272,7 +270,7 @@ void raft_free(raft_server_t* me_);
* Callbacks need to be set by the user for CRaft to work. * Callbacks need to be set by the user for CRaft to work.
* *
* @param funcs Callbacks * @param funcs Callbacks
* @param udata The context that we include when making a callback */ * @param udata "User data" - user's context that's included in a callback */
void raft_set_callbacks(raft_server_t* me, raft_cbs_t* funcs, void* udata); void raft_set_callbacks(raft_server_t* me, raft_cbs_t* funcs, void* udata);
/** /**
...@@ -280,7 +278,7 @@ void raft_set_callbacks(raft_server_t* me, raft_cbs_t* funcs, void* udata); ...@@ -280,7 +278,7 @@ void raft_set_callbacks(raft_server_t* me, raft_cbs_t* funcs, void* udata);
* @param nodes Array of nodes. End of array is marked by NULL entry * @param nodes Array of nodes. End of array is marked by NULL entry
* @param my_idx Index of the node that refers to this Raft server */ * @param my_idx Index of the node that refers to this Raft server */
void raft_set_configuration(raft_server_t* me_, void raft_set_configuration(raft_server_t* me_,
raft_node_configuration_t* nodes, int my_idx); raft_node_configuration_t* nodes, int my_idx);
/** /**
* Set election timeout * Set election timeout
...@@ -302,40 +300,40 @@ int raft_periodic(raft_server_t* me, int msec_elapsed); ...@@ -302,40 +300,40 @@ int raft_periodic(raft_server_t* me, int msec_elapsed);
/** /**
* Receive an appendentries message * Receive an appendentries message
* @param node Index of the node who sent us this message * @param node Index of the node who sent us this message
* @param ae The appendentries message * @param ae The appendentries message
* @return 0 on error */ * @return 0 on error */
int raft_recv_appendentries(raft_server_t* me, int node, int raft_recv_appendentries(raft_server_t* me, int node,
msg_appendentries_t* ae); msg_appendentries_t* ae);
/** /**
* Receive a response from an appendentries message we sent * Receive a response from an appendentries message we sent
* @param node Index of the node who sent us this message * @param node Index of the node who sent us this message
* @param r The appendentries response message * @param r The appendentries response message
* @return 0 on error */ * @return 0 on error */
int raft_recv_appendentries_response(raft_server_t* me_, int raft_recv_appendentries_response(raft_server_t* me_,
int node, msg_appendentries_response_t* r); int node, msg_appendentries_response_t* r);
/** /**
* Receive a requestvote message * Receive a requestvote message
* @param node Index of the node who sent us this message * @param node Index of the node who sent us this message
* @param vr The requestvote message * @param vr The requestvote message
* @return 0 on error */ * @return 0 on error */
int raft_recv_requestvote(raft_server_t* me, int node, int raft_recv_requestvote(raft_server_t* me, int node,
msg_requestvote_t* vr); msg_requestvote_t* vr);
/** /**
* Receive a response from a requestvote message we sent * Receive a response from a requestvote message we sent
* @param node Index of the node who sent us this message * @param node Index of the node who sent us this message
* @param r The requestvote response message * @param r The requestvote response message
* @param node The node this response was sent by */ * @param node The node this response was sent by */
int raft_recv_requestvote_response(raft_server_t* me, int node, int raft_recv_requestvote_response(raft_server_t* me, int node,
msg_requestvote_response_t* r); msg_requestvote_response_t* r);
/** /**
* Receive an entry message from client. * Receive an entry message from client.
* Append the entry to the log * Append the entry to the log
* Send appendentries to followers * Send appendentries to followers
* @param node Index of the node who sent us this message * @param node Index of the node who sent us this message
* @param e The entry message */ * @param e The entry message */
int raft_recv_entry(raft_server_t* me, int node, msg_entry_t* e); int raft_recv_entry(raft_server_t* me, int node, msg_entry_t* e);
......
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