mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
GUACAMOLE-431: Move setState to base Tunnel class
Move `setState()` to Tunnel class to avoid repetition.
This commit is contained in:
@@ -54,6 +54,25 @@ Guacamole.Tunnel = function() {
|
||||
*/
|
||||
this.sendMessage = function(elements) {};
|
||||
|
||||
/**
|
||||
* Changes the stored numeric state of this tunnel, firing the onstatechange
|
||||
* event if the new state is different and a handler has been defined.
|
||||
*
|
||||
* @private
|
||||
* @param {Number} state
|
||||
* The new state of this tunnel.
|
||||
*/
|
||||
this.setState = function(state) {
|
||||
|
||||
// Notify only if state changes
|
||||
if (state !== this.state) {
|
||||
this.state = state;
|
||||
if (this.onstatechange)
|
||||
this.onstatechange(state);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* The current state of this tunnel.
|
||||
*
|
||||
@@ -239,14 +258,11 @@ Guacamole.HTTPTunnel = function(tunnelURL, crossDomain) {
|
||||
|
||||
}
|
||||
|
||||
// Mark as closed
|
||||
tunnel.state = Guacamole.Tunnel.State.CLOSED;
|
||||
|
||||
// Reset output message buffer
|
||||
sendingMessages = false;
|
||||
|
||||
if (tunnel.onstatechange)
|
||||
tunnel.onstatechange(tunnel.state);
|
||||
// Mark as closed
|
||||
tunnel.setState(Guacamole.Tunnel.State.CLOSED);
|
||||
|
||||
}
|
||||
|
||||
@@ -566,9 +582,8 @@ Guacamole.HTTPTunnel = function(tunnelURL, crossDomain) {
|
||||
// Get UUID from response
|
||||
tunnel.uuid = connect_xmlhttprequest.responseText;
|
||||
|
||||
tunnel.state = Guacamole.Tunnel.State.OPEN;
|
||||
if (tunnel.onstatechange)
|
||||
tunnel.onstatechange(tunnel.state);
|
||||
// Mark as open
|
||||
tunnel.setState(Guacamole.Tunnel.State.OPEN);
|
||||
|
||||
// Start reading data
|
||||
handleResponse(makeRequest());
|
||||
@@ -698,9 +713,7 @@ Guacamole.WebSocketTunnel = function(tunnelURL) {
|
||||
tunnel.onerror(status);
|
||||
|
||||
// Mark as closed
|
||||
tunnel.state = Guacamole.Tunnel.State.CLOSED;
|
||||
if (tunnel.onstatechange)
|
||||
tunnel.onstatechange(tunnel.state);
|
||||
tunnel.setState(Guacamole.Tunnel.State.CLOSED);
|
||||
|
||||
socket.close();
|
||||
|
||||
@@ -814,9 +827,7 @@ Guacamole.WebSocketTunnel = function(tunnelURL) {
|
||||
tunnel.uuid = elements[0];
|
||||
|
||||
// Tunnel is now open and UUID is available
|
||||
tunnel.state = Guacamole.Tunnel.State.OPEN;
|
||||
if (tunnel.onstatechange)
|
||||
tunnel.onstatechange(tunnel.state);
|
||||
tunnel.setState(Guacamole.Tunnel.State.OPEN);
|
||||
|
||||
}
|
||||
|
||||
@@ -1059,25 +1070,6 @@ Guacamole.StaticHTTPTunnel = function StaticHTTPTunnel(url, crossDomain) {
|
||||
*/
|
||||
var xhr = null;
|
||||
|
||||
/**
|
||||
* Changes the stored numeric state of this tunnel, firing the onstatechange
|
||||
* event if the new state is different and a handler has been defined.
|
||||
*
|
||||
* @private
|
||||
* @param {Number} state
|
||||
* The new state of this tunnel.
|
||||
*/
|
||||
var setState = function setState(state) {
|
||||
|
||||
// Notify only if state changes
|
||||
if (state !== tunnel.state) {
|
||||
tunnel.state = state;
|
||||
if (tunnel.onstatechange)
|
||||
tunnel.onstatechange(state);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the Guacamole protocol status code which most closely
|
||||
* represents the given HTTP status code.
|
||||
@@ -1133,7 +1125,7 @@ Guacamole.StaticHTTPTunnel = function StaticHTTPTunnel(url, crossDomain) {
|
||||
tunnel.disconnect();
|
||||
|
||||
// Connection is now starting
|
||||
setState(Guacamole.Tunnel.State.CONNECTING);
|
||||
tunnel.setState(Guacamole.Tunnel.State.CONNECTING);
|
||||
|
||||
// Start a new connection
|
||||
xhr = new XMLHttpRequest();
|
||||
@@ -1160,7 +1152,7 @@ Guacamole.StaticHTTPTunnel = function StaticHTTPTunnel(url, crossDomain) {
|
||||
if (xhr.readyState === 3 || xhr.readyState === 4) {
|
||||
|
||||
// Connection is open
|
||||
setState(Guacamole.Tunnel.State.OPEN);
|
||||
tunnel.setState(Guacamole.Tunnel.State.OPEN);
|
||||
|
||||
var buffer = xhr.responseText;
|
||||
var length = buffer.length;
|
||||
@@ -1200,7 +1192,7 @@ Guacamole.StaticHTTPTunnel = function StaticHTTPTunnel(url, crossDomain) {
|
||||
}
|
||||
|
||||
// Connection is now closed
|
||||
setState(Guacamole.Tunnel.State.CLOSED);
|
||||
tunnel.setState(Guacamole.Tunnel.State.CLOSED);
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user