30 lines
571 B
C
30 lines
571 B
C
#ifndef LOG_INCLUDED
|
|
#define LOG_INCLUDED
|
|
|
|
#include <state_machine/kvstore.h>
|
|
|
|
#include "config.h"
|
|
|
|
typedef struct {
|
|
KVStoreOper oper;
|
|
uint32_t votes;
|
|
int view_number;
|
|
uint64_t client_id;
|
|
uint64_t request_id;
|
|
} LogEntry;
|
|
|
|
_Static_assert(NODE_LIMIT <= 32, "");
|
|
|
|
typedef struct {
|
|
int count;
|
|
int capacity;
|
|
LogEntry *entries;
|
|
} Log;
|
|
|
|
void log_init(Log *log);
|
|
int log_init_from_network(Log *log, void *src, int num);
|
|
void log_free(Log *log);
|
|
void log_move(Log *dst, Log *src);
|
|
int log_append(Log *log, LogEntry entry);
|
|
|
|
#endif // LOG_INCLUDED
|