Repository: incubator-guacamole-client Updated Branches: refs/heads/master 0611fe8ff -> 5a6c47a9b
GUACAMOLE-431: Move setState to base Tunnel class Move `setState()` to Tunnel class to avoid repetition. Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/commit/d778ad70 Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/d778ad70 Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/d778ad70 Branch: refs/heads/master Commit: d778ad7035a39710a6316905cd430203daad100a Parents: 0611fe8 Author: Or Cohen <[email protected]> Authored: Tue Nov 7 11:17:42 2017 +0200 Committer: Or Cohen <[email protected]> Committed: Tue Nov 7 12:41:40 2017 +0200 ---------------------------------------------------------------------- .../src/main/webapp/modules/Tunnel.js | 64 +++++++++----------- 1 file changed, 28 insertions(+), 36 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/d778ad70/guacamole-common-js/src/main/webapp/modules/Tunnel.js ---------------------------------------------------------------------- diff --git a/guacamole-common-js/src/main/webapp/modules/Tunnel.js b/guacamole-common-js/src/main/webapp/modules/Tunnel.js index 508aa4c..3fa6ef7 100644 --- a/guacamole-common-js/src/main/webapp/modules/Tunnel.js +++ b/guacamole-common-js/src/main/webapp/modules/Tunnel.js @@ -55,6 +55,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. * * @type {Number} @@ -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); } @@ -1060,25 +1071,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); };
