예제 #1
0
파일: Node.cs 프로젝트: mayamalakova/raft
        internal void SendLogUpdateRequest(NodeMessage message, Guid entryId)
        {
            var logUpdate = new NodeMessage(Status.Term, message.Value, MessageType.LogUpdate, Name, entryId);

            Broker.Broadcast(logUpdate);
        }
예제 #2
0
파일: Node.cs 프로젝트: mayamalakova/raft
        internal void SendCommit(NodeMessage message)
        {
            var nodeMessage = new NodeMessage(Status.Term, message.Value, MessageType.LogCommit, Name, message.Id);

            Broker.Broadcast(nodeMessage);
        }
예제 #3
0
파일: Node.cs 프로젝트: mayamalakova/raft
        public void UpdateLog(NodeMessage message, Guid entryId)
        {
            var logEntry = new LogEntry(OperationType.Update, message.Value, entryId, Status.Term);

            Log.Add(logEntry);
        }
예제 #4
0
파일: Node.cs 프로젝트: mayamalakova/raft
        internal void ConfirmLogUpdate(Guid entryId, string leaderName)
        {
            var nodeMessage = new NodeMessage(Status.Term, null, MessageType.LogUpdateConfirmation, Name, entryId);

            Broker.Send(nodeMessage, leaderName);
        }
예제 #5
0
파일: Node.cs 프로젝트: mayamalakova/raft
        public void SendPing()
        {
            var voteMessage = new NodeMessage(Status.Term, Name, MessageType.Info, Name, Guid.Empty);

            Broker.Broadcast(voteMessage);
        }