Ignore:
Timestamp:
09/30/19 15:37:05 (5 years ago)
Author:
bart
Message:

Added parameter support

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

Legend:

Unmodified
Added
Removed
  • protocol/src/main/java/geniusweb/protocol/session/saop/SAOP.java

    r4 r8  
    2828import geniusweb.protocol.session.SessionSettings;
    2929import geniusweb.protocol.session.SessionState;
     30import geniusweb.references.Parameters;
    3031import geniusweb.references.PartyWithProfile;
    3132import geniusweb.references.ProfileRef;
     
    101102                        setupParties();
    102103                        nextTurn();
    103                 } catch (ProtocolException | IOException | InterruptedException e) {
     104                } catch (Throwable e) {
    104105                        handleError("Failed to start up session", null, e);
    105106                }
     
    155156                                .getParticipants();
    156157                List<Reference> parties = participants.stream()
    157                                 .map(parti -> (parti.getParty())).collect(Collectors.toList());
     158                                .map(parti -> (parti.getParty().getPartyRef()))
     159                                .collect(Collectors.toList());
    158160                List<ConnectionWithParty> connections = null;
    159161                log.log(Level.INFO, "SAOP connect " + parties);
     
    241243                PartyId partyid = connection.getParty();
    242244                ProfileRef profile = state.getPartyProfiles().get(partyid).getProfile();
     245                Parameters params = state.getPartyProfiles().get(partyid).getParty()
     246                                .getParameters();
    243247                if (profile == null) {
    244248                        throw new IllegalArgumentException(
     
    246250                }
    247251                connection.send(new Settings(connection.getParty(), profile, getRef(),
    248                                 state.getProgress()));
     252                                state.getProgress(), params));
    249253        }
    250254
     
    276280                        if (!state.isFinal(System.currentTimeMillis()))
    277281                                nextTurn();
    278                 } catch (Exception e) {
     282                } catch (Throwable e) {
    279283                        handleError("failed to handle action " + action,
    280284                                        partyconn.getParty().getName(), e);
     
    305309         */
    306310        private synchronized void handleError(final String message,
    307                         final String party, final Exception e) {
     311                        final String party, final Throwable e) {
    308312                if (e instanceof ProtocolException) {
    309313                        setState(state.with((ProtocolException) e));
  • protocol/src/main/java/geniusweb/protocol/tournament/allpermutations/AllPermutationsSettings.java

    r1 r8  
    1111import geniusweb.protocol.tournament.TournamentSettings;
    1212import geniusweb.references.PartyRef;
     13import geniusweb.references.PartyWithParameters;
    1314import geniusweb.references.PartyWithProfile;
    1415import geniusweb.references.ProfileRef;
     
    3536 */
    3637public class AllPermutationsSettings implements TournamentSettings {
    37         private final List<PartyRef> parties;
     38        private final List<PartyWithParameters> parties;
    3839        private final List<ProfileRef> profiles;
    3940        private final boolean reuseParties;
     
    5859        @JsonCreator
    5960        public AllPermutationsSettings(
    60                         @JsonProperty("parties") List<PartyRef> parties,
     61                        @JsonProperty("parties") List<PartyWithParameters> parties,
    6162                        @JsonProperty("reuseParties") boolean reuseParties,
    6263                        @JsonProperty("profiles") List<ProfileRef> profiles,
     
    9798        public ImmutableList<SessionSettings> permutations() {
    9899                ImmutableList<ImmutableList<PartyWithProfile>> partylistlist;
    99                 ImmutableList<PartyRef> partieslist = new FixedList<PartyRef>(parties);
     100                ImmutableList<PartyWithParameters> partieslist = new FixedList<PartyWithParameters>(
     101                                parties);
    100102                ImmutableList<ProfileRef> profileslist = new FixedList<ProfileRef>(
    101103                                profiles);
     
    184186         */
    185187        private ImmutableList<ImmutableList<PartyWithProfile>> getParticipants(
    186                         ImmutableList<PartyRef> parties, ImmutableList<ProfileRef> profiles,
    187                         int n, boolean drawPartyWithPutback) {
    188 
    189                 Permutations<PartyRef> partiesPermutations;
     188                        ImmutableList<PartyWithParameters> parties,
     189                        ImmutableList<ProfileRef> profiles, int n,
     190                        boolean drawPartyWithPutback) {
     191
     192                Permutations<PartyWithParameters> partiesPermutations;
    190193                if (drawPartyWithPutback) {
    191194                        partiesPermutations = new PermutationsWithReturn<>(parties, n);
     
    199202                // each tuple contains sesion info: a list of partyref and a list of
    200203                // profileref's.
    201                 Tuples<ImmutableList<PartyRef>, ImmutableList<ProfileRef>> tuples = new Tuples<>(
     204                Tuples<ImmutableList<PartyWithParameters>, ImmutableList<ProfileRef>> tuples = new Tuples<>(
    202205                                partiesPermutations, profilesPermutations);
    203206
    204                 return new MapList<Tuple<ImmutableList<PartyRef>, ImmutableList<ProfileRef>>, ImmutableList<PartyWithProfile>>(
     207                return new MapList<Tuple<ImmutableList<PartyWithParameters>, ImmutableList<ProfileRef>>, ImmutableList<PartyWithProfile>>(
    205208                                tuple -> partyprofilelist(tuple), tuples);
    206209        }
     
    214217         */
    215218        private ImmutableList<PartyWithProfile> partyprofilelist(
    216                         Tuple<ImmutableList<PartyRef>, ImmutableList<ProfileRef>> tuple) {
    217                 Function2<PartyRef, ProfileRef, PartyWithProfile> //
    218                 makeparty = new Function2<PartyRef, ProfileRef, PartyWithProfile>() {
     219                        Tuple<ImmutableList<PartyWithParameters>, ImmutableList<ProfileRef>> tuple) {
     220                Function2<PartyWithParameters, ProfileRef, PartyWithProfile> //
     221                makeparty = new Function2<PartyWithParameters, ProfileRef, PartyWithProfile>() {
    219222                        @Override
    220                         public PartyWithProfile apply(PartyRef party, ProfileRef profile) {
     223                        public PartyWithProfile apply(PartyWithParameters party,
     224                                        ProfileRef profile) {
    221225                                return new PartyWithProfile(party, profile);
    222226                        }
    223227                };
    224                 return new MapThreadList<PartyWithProfile, PartyRef, ProfileRef>(
     228                return new MapThreadList<PartyWithProfile, PartyWithParameters, ProfileRef>(
    225229                                makeparty, tuple.get1(), tuple.get2());
    226230        }
Note: See TracChangeset for help on using the changeset viewer.