com.vaadin.client.data
Interface CacheStrategy

All Known Implementing Classes:
CacheStrategy.AbstractBasicSymmetricalCacheStrategy, CacheStrategy.DefaultCacheStrategy

public interface CacheStrategy

Determines what data an AbstractRemoteDataSource should fetch and keep cached.

Since:
7.4
Author:
Vaadin Ltd

Nested Class Summary
static class CacheStrategy.AbstractBasicSymmetricalCacheStrategy
          A helper class for creating a simple symmetric cache strategy that uses the same logic for both rows before and after the currently cached range.
static class CacheStrategy.DefaultCacheStrategy
          The default cache strategy used by AbstractRemoteDataSource, using multiples of the page size for determining the minimum and maximum number of items to keep in the cache.
 
Method Summary
 com.vaadin.shared.ui.grid.Range getMaxCacheRange(com.vaadin.shared.ui.grid.Range displayedRange, com.vaadin.shared.ui.grid.Range cachedRange, com.vaadin.shared.ui.grid.Range estimatedAvailableRange)
          Gets the maximum row range that should be cached.
 com.vaadin.shared.ui.grid.Range getMinCacheRange(com.vaadin.shared.ui.grid.Range displayedRange, com.vaadin.shared.ui.grid.Range cachedRange, com.vaadin.shared.ui.grid.Range estimatedAvailableRange)
          Gets the minimum row range that should be cached.
 void onDataArrive(double roundTripTime, int rowCount)
          Called whenever data requested by the data source has arrived.
 

Method Detail

onDataArrive

void onDataArrive(double roundTripTime,
                  int rowCount)
Called whenever data requested by the data source has arrived. This information can e.g. be used for measuring how long it takes to fetch different number of rows from the server.

A cache strategy implementation cannot use this information to keep track of which items are in the cache since the data source might discard items without notifying the cache strategy.

Parameters:
roundTripTime - the total number of milliseconds elapsed from requesting the data until the response was passed to the data source
rowCount - the number of received rows

getMinCacheRange

com.vaadin.shared.ui.grid.Range getMinCacheRange(com.vaadin.shared.ui.grid.Range displayedRange,
                                                 com.vaadin.shared.ui.grid.Range cachedRange,
                                                 com.vaadin.shared.ui.grid.Range estimatedAvailableRange)
Gets the minimum row range that should be cached. The data source will fetch new data if the currently cached range does not fill the entire minimum cache range.

Parameters:
displayedRange - the range of currently displayed rows
cachedRange - the range of currently cached rows
estimatedAvailableRange - the estimated range of rows available for the data source
Returns:
the minimum range of rows that should be cached, should at least include the displayed range and should not exceed the total estimated available range

getMaxCacheRange

com.vaadin.shared.ui.grid.Range getMaxCacheRange(com.vaadin.shared.ui.grid.Range displayedRange,
                                                 com.vaadin.shared.ui.grid.Range cachedRange,
                                                 com.vaadin.shared.ui.grid.Range estimatedAvailableRange)
Gets the maximum row range that should be cached. The data source will discard cached rows that are outside the maximum range.

Parameters:
displayedRange - the range of currently displayed rows
cachedRange - the range of currently cached rows
estimatedAvailableRange - the estimated range of rows available for the data source
Returns:
the maximum range of rows that should be cached, should at least include the displayed range and should not exceed the total estimated available range


Copyright © 2000-2014 Vaadin Ltd. All Rights Reserved.