package geniusweb.profilesserver.websocket; import java.io.IOException; import java.math.BigInteger; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Random; import java.util.Set; import java.util.stream.Collectors; import javax.websocket.OnClose; import javax.websocket.OnError; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; import geniusweb.bidspace.AllBidsList; import geniusweb.bidspace.BidsWithUtility; import geniusweb.issuevalue.Bid; import geniusweb.profile.DefaultPartialOrdering; import geniusweb.profile.PartialOrdering; import geniusweb.profile.Profile; import geniusweb.profile.utilityspace.LinearAdditive; import geniusweb.profilesserver.Jackson; import geniusweb.profilesserver.ProfilesRepository; import geniusweb.profilesserver.events.ChangeEvent; import tudelft.utilities.immutablelist.FixedList; import tudelft.utilities.immutablelist.ImmutableList; import tudelft.utilities.listener.Listener; /** * Returns a websocket that communicates the list of currently available domains * and profiles. Every time something changes, a new list of domains and * profiles is sent. For each new websocket the server will create one of this * but they all share one {@link ProfilesRepository}. * *

* Query string: the websocket allows query strings. *