33 lines
870 B
Python
33 lines
870 B
Python
"""This module contains the base state for all other raft states"""
|
|
|
|
import MyRaft.node as node
|
|
import MyRaft.raft_pb2 as raft_pb2
|
|
|
|
class State:
|
|
"""Base class to represent state of the system at any point in time.
|
|
|
|
Default behaviour for all messaging methods is to check if term of
|
|
message is greater than node's term, and if so convert the current
|
|
node to a follower.
|
|
"""
|
|
|
|
def __init__(self, context: node.RaftNode):
|
|
self._context = context
|
|
self._currentTerm = 0
|
|
|
|
def heartbeat_elapsed(self):
|
|
raise NotImplementedError
|
|
|
|
def rcv_RequestVote(self, request):
|
|
raise NotImplementedError
|
|
|
|
def rcv_AppendEntries(self, request):
|
|
raise NotImplementedError
|
|
|
|
def rcv_vote(self, request):
|
|
raise NotImplementedError
|
|
|
|
def rcv_AppendEntriesResponse(self, request):
|
|
pass
|
|
|
|
|