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);
 
     };
 

Reply via email to