Example #1
0
 private void updateBallotNumberIfNeeded(SolicitateBallotRequest message, AcceptorState state)
 {
     if (message.BallotNumber > state.BallotNumber)
     {
         state.BallotNumber = message.BallotNumber;
     }
 }
Example #2
0
 private void updateBallotNumberIfNeeded(SolicitateBallotRequest message, AcceptorState state)
 {
     if (message.BallotNumber > state.BallotNumber)
     {
         state.BallotNumber = message.BallotNumber;
         logger.Info($"{state.MessageSender.UniqueId} elect leader {message.MessageSender.UniqueId}");
     }
 }
Example #3
0
        private void solicitateBallot()
        {
            SolicitateBallotRequest request = new SolicitateBallotRequest();

            request.BallotNumber  = this.currentState.BallotNumber;
            request.MessageSender = this.currentState.MessageSender;
            this.strategyContainer.ExecuteStrategy(request, this.currentState);
        }
 private void sendRequestToAcceptors(LeaderState state, SolicitateBallotRequest objMessage)
 {
     state.BallotRequestPendingDecisionByAcceptors.Clear();
     foreach (MessageSender acceptor in state.Acceptors)
     {
         state.BallotRequestPendingDecisionByAcceptors.Add(acceptor);
         broker.SendMessage(acceptor.UniqueId, objMessage);
     }
 }
Example #5
0
        public void Execute(MessageStrategyExecuteArg <IMessage> obj)
        {
            checkInvalidParameter(obj);

            SolicitateBallotRequest message = obj.Message as SolicitateBallotRequest;
            AcceptorState           state   = obj.RoleState as AcceptorState;

            updateBallotNumberIfNeeded(message, state);
            sendSolicitateBallotResponse(message.MessageSender, state);
        }
        public void Execute(MessageStrategyExecuteArg <IMessage> obj)
        {
            if (!(obj.Message is SolicitateBallotRequest))
            {
                throw new MessageStrategyException("This strategy shouldn't be invoked with this message type");
            }

            SolicitateBallotRequest request = obj.Message as SolicitateBallotRequest;

            sendRequestToAcceptors(obj.RoleState as LeaderState, request);
        }