package rescuecore2.messages.control;
import rescuecore2.messages.Control;
import rescuecore2.messages.AbstractMessage;
import rescuecore2.messages.components.IntComponent;
import java.io.InputStream;
import java.io.IOException;
/**
A message from a simulator requesting a new EntityID.
*/
public class EntityIDRequest extends AbstractMessage implements Control {
private IntComponent simID;
private IntComponent requestID;
private IntComponent count;
/**
Construct an EntityIDRequest 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 EntityIDRequest(InputStream in) throws IOException {
this();
read(in);
}
/**
Construct an EntityIDRequest message.
@param simID The ID of the simulator making the request.
@param requestID A unique ID number for this request.
@param number The number of IDs requested.
*/
public EntityIDRequest(int simID, int requestID, int number) {
this();
this.simID.setValue(simID);
this.requestID.setValue(requestID);
this.count.setValue(number);
}
private EntityIDRequest() {
super(ControlMessageURN.ENTITY_ID_REQUEST);
simID = new IntComponent("Simulator ID");
requestID = new IntComponent("Request number");
count = new IntComponent("Number of IDs");
addMessageComponent(simID);
addMessageComponent(requestID);
addMessageComponent(count);
}
/**
Get the ID of the simulator making the request.
@return The simulator ID.
*/
public int getSimulatorID() {
return simID.getValue();
}
/**
Get the ID of this request.
@return The request ID.
*/
public int getRequestID() {
return requestID.getValue();
}
/**
Get the number of IDs requested.
@return The number of IDs requested.
*/
public int getCount() {
return count.getValue();
}
}