view src/main/java/christie/test/topology/paxos/acceptor/PromiseCodeGear.java @ 193:f4343de364da

fix paxos
author akahori
date Tue, 26 Feb 2019 18:33:49 +0900
parents 2d0d41b648fa
children
line wrap: on
line source

package christie.test.topology.paxos.acceptor;

import christie.annotation.Take;
import christie.codegear.CodeGear;
import christie.codegear.CodeGearManager;
import christie.test.topology.paxos.Proposal;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class PromiseCodeGear extends CodeGear {

    @Take
    Proposal promisedProposal;

    @Take
    Proposal prepareProposal;

    Logger logger = LogManager.getLogger(PromiseCodeGear.class);


    public PromiseCodeGear(){ }

    @Override
    protected void run(CodeGearManager cgm) {
        if(promisedProposal.getNumber() < prepareProposal.getNumber()) {
            if(!promisedProposal.isAccepted()){
                promisedProposal = prepareProposal;
            }
        }
        put("promisedProposal", promisedProposal);
        logger.debug("promise " + promisedProposal);
        put(prepareProposal.getProposerName(),"receivePromise", promisedProposal);
        cgm.setup(new PromiseCodeGear());
    }

}