/** * */ package iamrescue.communication.messages; import iamrescue.belief.ShortIDIndex; import iamrescue.communication.messages.codec.AbstractMessageCodec; import iamrescue.communication.messages.codec.BitStreamDecoder; import iamrescue.communication.messages.codec.BitStreamEncoder; import iamrescue.communication.messages.codec.IMessageCodec; import rescuecore2.worldmodel.EntityID; /** * @author Sebastian * */ public class AgentStuckMessage extends Message { private EntityID area; private EntityID stuckAgent; /** * */ public AgentStuckMessage(EntityID stuckAgent, EntityID area) { this.stuckAgent = stuckAgent; this.area = area; } @Override public Message copy() { AgentStuckMessage stuckMessage = new AgentStuckMessage(stuckAgent, area); copyProperties(stuckMessage); return stuckMessage; } public EntityID getArea() { return area; } public EntityID getStuckAgent() { return stuckAgent; } @Override public IMessageCodec getCodec() { return new AbstractMessageCodec() { @Override public byte getMessagePrefix() { return MessagePrefixes.AGENT_STUCK_MESSAGE_PREFIX; } @Override protected Message decodeMessage(BitStreamDecoder decoder) { ShortIDIndex shortIndex = decoder.getBeliefBase() .getShortIndex(); EntityID stuckAgent = shortIndex.getEntityID(decoder .readShort()); EntityID area = shortIndex.getEntityID(decoder.readShort()); AgentStuckMessage stuckMessage = new AgentStuckMessage( stuckAgent, area); return stuckMessage; } @Override protected void encodeMessage(Message message, BitStreamEncoder encoder) { ShortIDIndex shortIndex = encoder.getBeliefBase() .getShortIndex(); encoder.appendShort(shortIndex.getShortID(stuckAgent)); encoder.appendShort(shortIndex.getShortID(area)); } }; } /* * (non-Javadoc) * * @see * iamrescue.communication.messages.Message#getMessageContentsAsString() */ @Override public String getMessageContentsAsString() { return "stuckAgent=" + getStuckAgent() + ",area=" + getArea(); } /* * (non-Javadoc) * * @see iamrescue.communication.messages.Message#getMessageName() */ @Override public String getMessageName() { return "AgentStuckMessage"; } }