Changeset 22 for protocol/src/main


Ignore:
Timestamp:
09/22/20 16:26:36 (4 years ago)
Author:
bart
Message:

Minor fixes

Location:
protocol/src/main/java/geniusweb/protocol/session/mopac
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • protocol/src/main/java/geniusweb/protocol/session/mopac/MOPAC.java

    r21 r22  
    145145                        ProtocolToPartyConnFactory connectionfactory) {
    146146                try {
    147                         System.out.println("starting MOPAC");
     147                        //System.out.println("starting MOPAC");
    148148                        // we're in Phase.INIT still
    149149                        connect(connectionfactory);
     
    314314                        final ProtocolToPartyConn partyconn, final Action action,
    315315                        long now) {
    316                 System.out.println("received " + action);
     316                //System.out.println("received " + action);
    317317                state = state.with(partyconn.getParty(), action, now);
    318318                checkEndPhase(System.currentTimeMillis());
     
    341341
    342342                state = state.nextPhase(now);
     343
    343344                startPhase(now);
    344345        }
     
    351352         */
    352353        private void broadcastNegotiators(Inform info) {
    353                 System.out.println("broadcasting " + info);
     354                //System.out.println("broadcasting " + info);
    354355                for (PartyId party : state.getPhase().getPartyStates()
    355356                                .getNegotiatingParties()) {
  • protocol/src/main/java/geniusweb/protocol/session/mopac/MOPACState.java

    r21 r22  
    1414import geniusweb.actions.PartyId;
    1515import geniusweb.inform.Agreements;
     16import geniusweb.inform.OptIn;
    1617import geniusweb.progress.Progress;
    1718import geniusweb.progress.ProgressRounds;
     
    2223import geniusweb.protocol.session.SessionState;
    2324import geniusweb.protocol.session.mopac.phase.OfferPhase;
     25import geniusweb.protocol.session.mopac.phase.OptInPhase;
    2426import geniusweb.protocol.session.mopac.phase.Phase;
    2527import geniusweb.protocol.session.saop.SAOPSettings;
     
    127129        /**
    128130         * @param now current time ms since 1970
    129          * @return the max possible duration in ms of this phase. Maybe negative if
    130          *         ew are past deadline
     131         * @return the max possible duration in ms of the NEXT phase. Maybe 0 or
     132         *         negative if past deadline.
    131133         */
    132134        private Long getAvailablePhaseTime(long now) {
     135                // explicit check, to check also the round counts.
     136                if (incrementProgress().isPastDeadline(now + Phase.PHASE_MINTIME))
     137                        return 0l;
    133138                return Math.min(progress.getTerminationTime().getTime() - now,
    134139                                Phase.PHASE_MAXTIME);
     
    196201                Phase newphase = phase.next(now,
    197202                                Math.min(remainingNegoTime, Phase.PHASE_MAXTIME));
    198                 Progress newprogress = progress;
    199                 if (newphase instanceof OfferPhase
    200                                 && progress instanceof ProgressRounds)
    201                         newprogress = ((ProgressRounds) progress).advance();
    202 
    203                 return new MOPACState(newphase, actions, connections, newprogress,
    204                                 getSettings(), partyprofiles);
     203
     204                return new MOPACState(newphase, actions, connections,
     205                                incrementProgress(), getSettings(), partyprofiles);
     206        }
     207
     208        /**
     209         *
     210         * @return the next progress. Progress round advances if phase is
     211         *         {@link OptIn}.
     212         */
     213        private Progress incrementProgress() {
     214                if (progress instanceof ProgressRounds && phase instanceof OptInPhase)
     215                        return ((ProgressRounds) progress).advance();
     216                return progress;
    205217        }
    206218
     
    217229         */
    218230        public boolean isNewPhasePossible(long now) {
    219                 return phase.getPartyStates().getNegotiatingParties().size() >= 2
     231                // System.out.println("phase=" + phase);
     232                boolean a = phase.getPartyStates().getNegotiatingParties().size() >= 2
    220233                                && getAvailablePhaseTime(now) > Phase.PHASE_MINTIME;
     234                // System.out.println("newstate possible:" + a);
     235                return a;
    221236        }
    222237
Note: See TracChangeset for help on using the changeset viewer.