view src/main/java/christie/test/topology/paxos/acceptor/PromiseCodeGear.java @ 159:a0391cfdcef6

update topologymanager
author akahori
date Mon, 21 Jan 2019 18:02:49 +0900
parents src/main/java/christie/test/Paxos/acceptor/PromiseCodeGear.java@7a2108775da7
children 33b4966d4d24
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;

public class PromiseCodeGear extends CodeGear {

    @Take
    Proposal promisedProposal;

    @Take
    Proposal prepareProposal;


    public PromiseCodeGear(){ }

    @Override
    protected void run(CodeGearManager cgm) {

        if(promisedProposal.getNumber() < prepareProposal.getNumber()) {
            if(promisedProposal.isAccepted()){
                promisedProposal.setNumber(prepareProposal.getNumber());
            }else{
                promisedProposal = prepareProposal;
            }
        }
        put("promisedProposal", promisedProposal);
        put(prepareProposal.getProposerName(),"receivePromise", promisedProposal);
        cgm.setup(new PromiseCodeGear());
    }

}