Commit 8405f29e authored by Willem Thiart's avatar Willem Thiart
Browse files

Pass entry index into log event callback

parent 1dbe5faf
...@@ -194,13 +194,15 @@ typedef int ( ...@@ -194,13 +194,15 @@ typedef int (
* @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 entry The entry that the event is happening to * @param entry The entry that the event is happening to
* @param entry_idx The entries index in the log
* @return 0 on success */ * @return 0 on success */
typedef int ( typedef int (
*func_logentry_event_f *func_logentry_event_f
) ( ) (
raft_server_t* raft, raft_server_t* raft,
void *udata, void *udata,
raft_entry_t *entry raft_entry_t *entry,
int entry_idx
); );
typedef struct typedef struct
......
...@@ -50,7 +50,7 @@ static void __ensurecapacity(log_private_t * me) ...@@ -50,7 +50,7 @@ static void __ensurecapacity(log_private_t * me)
if (me->count < me->size) if (me->count < me->size)
return; return;
temp = (raft_entry_t*) calloc(1, sizeof(raft_entry_t) * me->size * 2); temp = (raft_entry_t*)calloc(1, sizeof(raft_entry_t) * me->size * 2);
for (i = 0, j = me->front; i < me->count; i++, j++) for (i = 0, j = me->front; i < me->count; i++, j++)
{ {
...@@ -70,11 +70,11 @@ static void __ensurecapacity(log_private_t * me) ...@@ -70,11 +70,11 @@ static void __ensurecapacity(log_private_t * me)
log_t* log_new() log_t* log_new()
{ {
log_private_t* me = (log_private_t*) calloc(1, sizeof(log_private_t)); log_private_t* me = (log_private_t*)calloc(1, sizeof(log_private_t));
me->size = INITIAL_CAPACITY; me->size = INITIAL_CAPACITY;
me->count = 0; me->count = 0;
me->back = in(me)->front = 0; me->back = in(me)->front = 0;
me->entries = (raft_entry_t*) calloc(1, sizeof(raft_entry_t) * me->size); me->entries = (raft_entry_t*)calloc(1, sizeof(raft_entry_t) * me->size);
return (log_t*)me; return (log_t*)me;
} }
...@@ -97,10 +97,10 @@ int log_append_entry(log_t* me_, raft_entry_t* c) ...@@ -97,10 +97,10 @@ int log_append_entry(log_t* me_, raft_entry_t* c)
memcpy(&me->entries[me->back], c, sizeof(raft_entry_t)); memcpy(&me->entries[me->back], c, sizeof(raft_entry_t));
me->entries[me->back].num_nodes = 0; me->entries[me->back].num_nodes = 0;
if (me->cb && me->cb->log_offer)
me->cb->log_offer(me->raft, raft_get_udata(me->raft), c, me->back);
me->count++; me->count++;
me->back++; me->back++;
if (me->cb && me->cb->log_offer)
me->cb->log_offer(me->raft, raft_get_udata(me->raft), c);
return 0; return 0;
} }
...@@ -138,7 +138,8 @@ void log_delete(log_t* me_, int idx) ...@@ -138,7 +138,8 @@ void log_delete(log_t* me_, int idx)
for (end = log_count(me_); idx < end; idx++) for (end = log_count(me_); idx < end; idx++)
{ {
if (me->cb && me->cb->log_pop) if (me->cb && me->cb->log_pop)
me->cb->log_pop(me->raft, raft_get_udata(me->raft), &me->entries[me->back]); me->cb->log_pop(me->raft, raft_get_udata(me->raft),
&me->entries[me->back], me->back);
me->back--; me->back--;
me->count--; me->count--;
} }
...@@ -153,7 +154,8 @@ void *log_poll(log_t * me_) ...@@ -153,7 +154,8 @@ void *log_poll(log_t * me_)
const void *elem = &me->entries[me->front]; const void *elem = &me->entries[me->front];
if (me->cb && me->cb->log_poll) if (me->cb && me->cb->log_poll)
me->cb->log_poll(me->raft, raft_get_udata(me->raft), &me->entries[me->front]); me->cb->log_poll(me->raft, raft_get_udata(me->raft),
&me->entries[me->front], me->front);
me->front++; me->front++;
me->count--; me->count--;
me->base_log_idx++; me->base_log_idx++;
......
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