|  | @@ -1149,13 +1149,33 @@ public class SharedBlobCacheService<KeyType> implements Releasable {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @FunctionalInterface
 | 
	
		
			
				|  |  |      public interface RangeAvailableHandler {
 | 
	
		
			
				|  |  | -        // caller that wants to read from x should instead do a positional read from x + relativePos
 | 
	
		
			
				|  |  | -        // caller should also only read up to length, further bytes will be offered by another call to this method
 | 
	
		
			
				|  |  | +        /**
 | 
	
		
			
				|  |  | +         * Callback method used to read data from the cache. The target is typically captured by the callback implementation.
 | 
	
		
			
				|  |  | +         *
 | 
	
		
			
				|  |  | +         * A caller should only read up to length, further bytes will be offered by another call to this method
 | 
	
		
			
				|  |  | +         *
 | 
	
		
			
				|  |  | +         * @param channel is the cache region to read from
 | 
	
		
			
				|  |  | +         * @param channelPos a position in the channel (cache file) to read from
 | 
	
		
			
				|  |  | +         * @param relativePos a position in the target buffer to store bytes and pass to the caller
 | 
	
		
			
				|  |  | +         * @param length of the blob that can be read (must not be exceeded)
 | 
	
		
			
				|  |  | +         * @return number of bytes read
 | 
	
		
			
				|  |  | +         * @throws IOException on failure
 | 
	
		
			
				|  |  | +         */
 | 
	
		
			
				|  |  |          int onRangeAvailable(SharedBytes.IO channel, int channelPos, int relativePos, int length) throws IOException;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @FunctionalInterface
 | 
	
		
			
				|  |  |      public interface RangeMissingHandler {
 | 
	
		
			
				|  |  | +        /**
 | 
	
		
			
				|  |  | +         * Callback method used to fetch data (usually from a remote storage) and write it in the cache.
 | 
	
		
			
				|  |  | +         *
 | 
	
		
			
				|  |  | +         * @param channel is the cache region to write to
 | 
	
		
			
				|  |  | +         * @param channelPos a position in the channel (cache file) to write to
 | 
	
		
			
				|  |  | +         * @param relativePos the relative position in the remote storage to read from
 | 
	
		
			
				|  |  | +         * @param length of data to fetch
 | 
	
		
			
				|  |  | +         * @param progressUpdater consumer to invoke with the number of copied bytes as they are written in cache.
 | 
	
		
			
				|  |  | +         *                        This is used to notify waiting readers that data become available in cache.
 | 
	
		
			
				|  |  | +         */
 | 
	
		
			
				|  |  |          void fillCacheRange(SharedBytes.IO channel, int channelPos, int relativePos, int length, IntConsumer progressUpdater)
 | 
	
		
			
				|  |  |              throws IOException;
 | 
	
		
			
				|  |  |      }
 |