mondrian.rolap.agg
Class SegmentCacheWorker

java.lang.Object
  extended by mondrian.rolap.agg.SegmentCacheWorker

public final class SegmentCacheWorker
extends Object

Utility class to interact with the SegmentCache.

Author:
LBoudreau
See Also:
SegmentCache

Constructor Summary
SegmentCacheWorker(SegmentCache cache, Thread cacheMgrThread)
          Creates a worker.
 
Method Summary
 boolean contains(SegmentHeader header)
          Returns whether there is a cached segment body available for a given segment header.
 SegmentBody get(SegmentHeader header)
          Returns a segment body corresponding to a header.
 List<SegmentHeader> getSegmentHeaders()
          Returns a list of segments present in the cache.
static List<SegmentCache> initCache()
          Instantiates a cache.
 void put(SegmentHeader header, SegmentBody body)
          Places a segment in the cache.
 boolean remove(SegmentHeader header)
          Removes a segment from the cache.
 void shutdown()
           
 boolean supportsRichIndex()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SegmentCacheWorker

public SegmentCacheWorker(SegmentCache cache,
                          Thread cacheMgrThread)
Creates a worker.

Parameters:
cache - Cache managed by this worker
cacheMgrThread - Thread that the cache manager actor is running on, and which therefore should not be used for potentially long-running calls this this cache. Pass null if methods can be called from any thread.
Method Detail

initCache

public static List<SegmentCache> initCache()
Instantiates a cache. Returns null if there is no external cache defined.

Returns:
Cache

get

public SegmentBody get(SegmentHeader header)
Returns a segment body corresponding to a header.

If no cache is configured or there is an error while querying the cache, null is returned none the less.

Parameters:
header - Header to search.
Returns:
Either a segment body object or null if there was no cache configured or no segment could be found for the passed header.

contains

public boolean contains(SegmentHeader header)
Returns whether there is a cached segment body available for a given segment header.

If no cache is configured or there is an error while querying the cache, returns false nonetheless.

Parameters:
header - A header to search for in the segment cache.
Returns:
True or false, whether there is a segment body available in a segment cache.

put

public void put(SegmentHeader header,
                SegmentBody body)
Places a segment in the cache. Returns true or false if the operation succeeds.

Parameters:
header - A header to search for in the segment cache.
body - The segment body to cache.

remove

public boolean remove(SegmentHeader header)
Removes a segment from the cache.

Parameters:
header - A header to remove in the segment cache.
Returns:
Whether a segment was removed

getSegmentHeaders

public List<SegmentHeader> getSegmentHeaders()
Returns a list of segments present in the cache.

Returns:
List of headers in the cache

supportsRichIndex

public boolean supportsRichIndex()

shutdown

public void shutdown()

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads