package rescuecore2.standard.messages; import rescuecore2.worldmodel.EntityID; import rescuecore2.messages.components.IntListComponent; import rescuecore2.messages.AbstractCommand; import java.util.List; import java.io.InputStream; import java.io.IOException; /** An agent channel subscription command. */ public class AKSubscribe extends AbstractCommand { private IntListComponent channels; /** An AKSubscribe message that populates its data from a stream. @param in The InputStream to read. @throws IOException If there is a problem reading the stream. */ public AKSubscribe(InputStream in) throws IOException { this(); read(in); } /** Construct a subscribe command. @param agent The ID of the agent issuing the command. @param time The time the command was issued. @param channels The IDs of the channels to speak on. */ public AKSubscribe(EntityID agent, int time, int... channels) { this(); setAgentID(agent); setTime(time); this.channels.setValues(channels); } private AKSubscribe() { super(StandardMessageURN.AK_SUBSCRIBE); channels = new IntListComponent("Channels"); addMessageComponent(channels); } /** Get the channels that have been requested. @return The requested channels. */ public List<Integer> getChannels() { return channels.getValues(); } }