]> source.dussan.org Git - vaadin-framework.git/commitdiff
Add getLastResponseId() (#10496) 87/487/2
authorLeif Åstrand <leif@vaadin.com>
Tue, 11 Dec 2012 12:52:09 +0000 (14:52 +0200)
committerLeif Åstrand <leif@vaadin.com>
Tue, 11 Dec 2012 12:52:09 +0000 (14:52 +0200)
Change-Id: I574844eabd9ba33ac7c5e967c734f6cc27d40e3e

client/src/com/vaadin/client/ApplicationConnection.java

index 5f90fe4c195b032f895e8c2602b069ace36d5c43..05cc88d0ee42f708435b5bb0b33318ab8959f627 100644 (file)
@@ -260,6 +260,8 @@ public class ApplicationConnection {
     /** Event bus for communication events */
     private EventBus eventBus = GWT.create(SimpleEventBus.class);
 
+    private int lastResponseId = -1;
+
     /**
      * The communication handler methods are called at certain points during
      * communication with the server. This allows for making add-ons that keep
@@ -1270,6 +1272,23 @@ public class ApplicationConnection {
         handleUIDLMessage(start, jsonText, json);
     }
 
+    /**
+     * Gets the id of the last received response. This id can be used by
+     * connectors to determine whether new data has been received from the
+     * server to avoid doing the same calculations multiple times.
+     * <p>
+     * No guarantees are made for the structure of the id other than that there
+     * will be a new unique value every time a new response with data from the
+     * server is received.
+     * <p>
+     * The initial id when no request has yet been processed is -1.
+     * 
+     * @return and id identifying the response
+     */
+    public int getLastResponseId() {
+        return lastResponseId;
+    }
+
     protected void handleUIDLMessage(final Date start, final String jsonText,
             final ValueMap json) {
         if (!responseHandlingLocks.isEmpty()) {
@@ -1294,6 +1313,8 @@ public class ApplicationConnection {
             return;
         }
 
+        lastResponseId++;
+
         final MultiStepDuration handleUIDLDuration = new MultiStepDuration();
 
         // Get security key