package rescuecore2.messages.control; import rescuecore2.messages.Control; import rescuecore2.messages.AbstractMessage; import rescuecore2.messages.components.IntComponent; import rescuecore2.messages.components.StringComponent; import java.io.InputStream; import java.io.IOException; /** A message for connecting a viewer to the kernel. */ public class VKConnect extends AbstractMessage implements Control { private IntComponent requestID; private IntComponent version; private StringComponent viewerName; /** A VKConnect 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 VKConnect(InputStream in) throws IOException { this(); read(in); } /** A VKConnect with a given version and request ID. @param version The version number. @param requestID The request ID. @param name The name of the simulator. */ public VKConnect(int requestID, int version, String name) { this(); this.requestID.setValue(requestID); this.version.setValue(version); this.viewerName.setValue(name); } private VKConnect() { super(ControlMessageURN.VK_CONNECT); requestID = new IntComponent("Request ID"); version = new IntComponent("Version"); viewerName = new StringComponent("Name"); addMessageComponent(requestID); addMessageComponent(version); addMessageComponent(viewerName); } /** Get the version number of this request. @return The version number. */ public int getVersion() { return version.getValue(); } /** Get the request ID. @return The request ID. */ public int getRequestID() { return requestID.getValue(); } /** Get the viewer name. @return The name of the viewer. */ public String getViewerName() { return viewerName.getValue(); } }