mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 05:07:41 +00:00
JavaDoc for protocol classes.
This commit is contained in:
@@ -25,10 +25,33 @@ import net.sourceforge.guacamole.protocol.GuacamoleInstruction.Operation;
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A GuacamoleSocket which pre-configures the connection based on a given
|
||||||
|
* GuacamoleConfiguration, completing the initial protocol handshake before
|
||||||
|
* accepting data for read or write.
|
||||||
|
*
|
||||||
|
* This is useful for forcing a connection to the Guacamole proxy server with
|
||||||
|
* a specific configuration while disallowing the client that will be using
|
||||||
|
* this GuacamoleSocket from manually controlling the initial protocol
|
||||||
|
* handshake.
|
||||||
|
*
|
||||||
|
* @author Michael Jumper
|
||||||
|
*/
|
||||||
public class ConfiguredGuacamoleSocket implements GuacamoleSocket {
|
public class ConfiguredGuacamoleSocket implements GuacamoleSocket {
|
||||||
|
|
||||||
private GuacamoleSocket socket;
|
private GuacamoleSocket socket;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new ConfiguredGuacamoleSocket which uses the given
|
||||||
|
* GuacamoleConfiguration to complete the initial protocol handshake over
|
||||||
|
* the given GuacamoleSocket.
|
||||||
|
*
|
||||||
|
* @param socket The GuacamoleSocket to wrap.
|
||||||
|
* @param config The GuacamoleConfiguration to use to complete the initial
|
||||||
|
* protocol handshake.
|
||||||
|
* @throws GuacamoleException If an error occurs while completing the
|
||||||
|
* initial protocol handshake.
|
||||||
|
*/
|
||||||
public ConfiguredGuacamoleSocket(GuacamoleSocket socket, GuacamoleConfiguration config) throws GuacamoleException {
|
public ConfiguredGuacamoleSocket(GuacamoleSocket socket, GuacamoleConfiguration config) throws GuacamoleException {
|
||||||
|
|
||||||
this.socket = socket;
|
this.socket = socket;
|
||||||
|
@@ -21,23 +21,49 @@ import java.util.HashMap;
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* All information necessary to complete the initial protocol handshake of a
|
||||||
|
* Guacamole session.
|
||||||
|
*
|
||||||
|
* @author Michael Jumper
|
||||||
|
*/
|
||||||
public class GuacamoleConfiguration {
|
public class GuacamoleConfiguration {
|
||||||
|
|
||||||
private String protocol;
|
private String protocol;
|
||||||
private HashMap<String, String> parameters = new HashMap<String, String>();
|
private HashMap<String, String> parameters = new HashMap<String, String>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the name of the protocol to be used.
|
||||||
|
* @return The name of the protocol to be used.
|
||||||
|
*/
|
||||||
public String getProtocol() {
|
public String getProtocol() {
|
||||||
return protocol;
|
return protocol;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the name of the protocol to be used.
|
||||||
|
* @param protocol The name of the protocol to be used.
|
||||||
|
*/
|
||||||
public void setProtocol(String protocol) {
|
public void setProtocol(String protocol) {
|
||||||
this.protocol = protocol;
|
this.protocol = protocol;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value set for the parameter with the given name, if any.
|
||||||
|
* @param name The name of the parameter to return the value for.
|
||||||
|
* @return The value of the parameter with the given name, or null if
|
||||||
|
* that parameter has not been set.
|
||||||
|
*/
|
||||||
public String getParameter(String name) {
|
public String getParameter(String name) {
|
||||||
return parameters.get(name);
|
return parameters.get(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value for the parameter with the given name.
|
||||||
|
*
|
||||||
|
* @param name The name of the parameter to set the value for.
|
||||||
|
* @param value The value to set for the parameter with the given name.
|
||||||
|
*/
|
||||||
public void setParameter(String name, String value) {
|
public void setParameter(String name, String value) {
|
||||||
parameters.put(name, value);
|
parameters.put(name, value);
|
||||||
}
|
}
|
||||||
|
@@ -21,23 +21,55 @@ import java.util.HashMap;
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An abstract representation of a Guacamole instruction, as defined by the
|
||||||
|
* Guacamole protocol.
|
||||||
|
*
|
||||||
|
* @author Michael Jumper
|
||||||
|
*/
|
||||||
public class GuacamoleInstruction {
|
public class GuacamoleInstruction {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The operation performed by a particular Guacamole instruction. Each
|
||||||
|
* Operation is associated with a unique opcode.
|
||||||
|
*/
|
||||||
public enum Operation {
|
public enum Operation {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Message sent from client to server specifying which protocol is
|
||||||
|
* to be used.
|
||||||
|
*/
|
||||||
CLIENT_SELECT("select"),
|
CLIENT_SELECT("select"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Message sent from client to server specifying which argument
|
||||||
|
* values correspond to the arguments required by the selected
|
||||||
|
* protocol.
|
||||||
|
*/
|
||||||
CLIENT_CONNECT("connect"),
|
CLIENT_CONNECT("connect"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Message sent from server to client specifying which arguments
|
||||||
|
* are required by the selected protocol.
|
||||||
|
*/
|
||||||
SERVER_ARGS("args");
|
SERVER_ARGS("args");
|
||||||
|
|
||||||
private String opcode;
|
private String opcode;
|
||||||
private Operation(String opcode) { this.opcode = opcode; }
|
private Operation(String opcode) {
|
||||||
|
this.opcode = opcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the unique opcode associated with this Operation.
|
||||||
|
* @return The unique opcode associated with this Operation.
|
||||||
|
*/
|
||||||
public String getOpcode() {
|
public String getOpcode() {
|
||||||
return opcode;
|
return opcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Maintain static hash of all opcodes
|
/**
|
||||||
|
* Static hash of all opcodes and their corresponding Operations.
|
||||||
|
*/
|
||||||
private static final HashMap<String, Operation> opcodeToOperation;
|
private static final HashMap<String, Operation> opcodeToOperation;
|
||||||
static {
|
static {
|
||||||
|
|
||||||
@@ -48,6 +80,13 @@ public class GuacamoleInstruction {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the corresponding Operation having the given opcode, if any.
|
||||||
|
*
|
||||||
|
* @param opcode The unique opcode associated with an Operation.
|
||||||
|
* @return The Operation associated with the given opcode, or null if
|
||||||
|
* no such Operation is defined.
|
||||||
|
*/
|
||||||
public static Operation fromOpcode(String opcode) {
|
public static Operation fromOpcode(String opcode) {
|
||||||
return opcodeToOperation.get(opcode);
|
return opcodeToOperation.get(opcode);
|
||||||
}
|
}
|
||||||
@@ -57,19 +96,45 @@ public class GuacamoleInstruction {
|
|||||||
private Operation operation;
|
private Operation operation;
|
||||||
private String[] args;
|
private String[] args;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new GuacamoleInstruction having the given Operation and
|
||||||
|
* list of arguments values.
|
||||||
|
*
|
||||||
|
* @param operation The Operation of the instruction to create.
|
||||||
|
* @param args The list of argument values to provide in the new
|
||||||
|
* instruction if any.
|
||||||
|
*/
|
||||||
public GuacamoleInstruction(Operation operation, String... args) {
|
public GuacamoleInstruction(Operation operation, String... args) {
|
||||||
this.operation = operation;
|
this.operation = operation;
|
||||||
this.args = args;
|
this.args = args;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the Operation associated with this GuacamoleInstruction.
|
||||||
|
* @return The Operation associated with this GuacamoleInstruction.
|
||||||
|
*/
|
||||||
public Operation getOperation() {
|
public Operation getOperation() {
|
||||||
return operation;
|
return operation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of all argument values specified for this
|
||||||
|
* GuacamoleInstruction.
|
||||||
|
*
|
||||||
|
* @return An array of all argument values specified for this
|
||||||
|
* GuacamoleInstruction.
|
||||||
|
*/
|
||||||
public String[] getArgs() {
|
public String[] getArgs() {
|
||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns this GuacamoleInstruction in the form it would be sent over the
|
||||||
|
* Guacamole protocol.
|
||||||
|
*
|
||||||
|
* @return This GuacamoleInstruction in the form it would be sent over the
|
||||||
|
* Guacamole protocol.
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user