package iamrescue.communication; import iamrescue.communication.messages.MessageChannel; import iamrescue.communication.messages.MessageChannelConfiguration; import java.util.Collection; import java.util.List; import java.util.Map; import rescuecore2.config.Config; import rescuecore2.standard.entities.StandardEntity; import rescuecore2.standard.entities.StandardEntityURN; import rescuecore2.worldmodel.EntityID; public interface ISimulationCommunicationConfiguration { /** * Total number of available channels * * @return */ int getChannelCount(); Config getConfig(); /** * Number of available radio channels * * @return */ int getRadioChannelCount(); /** * returns the list of available channels. See {@link MessageChannel} for * more details */ List<MessageChannel> getChannels(); /** * The maximum number of channels a platoon can listen to * * @return */ int getMaxListenChannelCountPlatoon(); /** * The maximum number of channels a centre can listen to * * @return */ int getMaxListenChannelCountCentre(); /** * The maximum number of channels *this* agent can listen to * * @return */ int getMaxListenChannelCount(); Map<StandardEntityURN, Collection<StandardEntity>> getAgentsByType(); StandardEntityURN getAgentType(); /** * Returns a subset of radio channels given a set of indices. The ordering * should be the same as getRadioChannels() * * @param i * @return */ List<MessageChannel> getRadioChannels(int... index); /** * Returns a list of radio channels. Different calls are guaranteed to * return the same ordering * * @return */ List<MessageChannel> getRadioChannels(); List<MessageChannel> getVoiceChannels(); MessageChannel getRadioChannel(int i); EntityID getEntityID(); Map<StandardEntityURN, Collection<StandardEntity>> getCentresByType(); Map<StandardEntityURN, Collection<StandardEntity>> getPlatoonsByType(); MessageChannelConfiguration getChannelConfiguration(); }