edu.unh.sdb.datasource
Class LRUCacheDataSource

java.lang.Object
  extended by edu.unh.sdb.datasource.DataCollection
      extended by edu.unh.sdb.datasource.DataSource
          extended by edu.unh.sdb.datasource.CacheDataSource
              extended by edu.unh.sdb.datasource.BlockCacheDataSource
                  extended by edu.unh.sdb.datasource.LRUCacheDataSource
All Implemented Interfaces:
Indexable

public class LRUCacheDataSource
extends BlockCacheDataSource

The LRUCacheDataSource provides cache service for an underlying datasource.


Field Summary
protected  int numCacheBlocks
           
 
Fields inherited from class edu.unh.sdb.datasource.DataSource
fdlDescriptor, isActivated, name, wsName
 
Fields inherited from class edu.unh.sdb.datasource.DataCollection
attributeOrder, axisOrdering, axisWeights, bounds, dataOrder, dimensionality, numAttributes, pointOrder, recordDesc
 
Constructor Summary
LRUCacheDataSource(java.lang.String name, ChunkedDataSource ds, int numCacheBlocks)
          Create a LRUCacheDataSource with a single CacheBlock connected to the ChunkedDataSource argument.
LRUCacheDataSource(java.lang.String name, DataSource ds, IndexSpaceID blockSizes, int numCacheBlocks)
          Create a LRUCacheDataSource with a single CacheBlock connected to the DataSource argument.
 
Method Summary
 void activate()
          Calls activate() for the underlying datasource, and creates the actual cache, which allocates memory for the CacheBlocks.
static void main(java.lang.String[] args)
          For debugging.
 void setIterationBounds(ISBounds bounds)
           
 
Methods inherited from class edu.unh.sdb.datasource.BlockCacheDataSource
getCacheBlockBounds, getCacheBlockBounds, getCacheBlockBounds, getCacheBlockBoundsIterator, getCacheBlockBoundsIterator, getCacheBlockDimensions, getCacheMemoryUsage
 
Methods inherited from class edu.unh.sdb.datasource.CacheDataSource
datum, datum, datum, deactivate, getIterationSpace, getSource, subblock, subblock
 
Methods inherited from class edu.unh.sdb.datasource.DataSource
checkActivated, clearCache, copyBestID, create, create, create, createRemote, createRemote, createRemoteClient, createRemoteClient, createRemoteDataSource, createRemoteDataSource, createRemoteDataSourceUDP, createRemoteUDP, createRemoteUDP, dumpData, equals, getName, getValues, isActivated, toString, toString
 
Methods inherited from class edu.unh.sdb.datasource.DataCollection
byteSize, computeOffset, computeOffset, copyBounds, createDataBlock, createDataBlock, createDataBlock, createDatum, createDatum, createDatum, createDatum, createDatum, createDatum, datum, datum, datum, datum, dim, getAxisOrdering, getAxisWeight, getAxisWeights, getBounds, getByte, getBytes, getBytes, getBytes, getBytes, getBytes, getBytes, getBytesByAttribute, getBytesByAttribute, getBytesByPoint, getBytesByPoint, getDataOrder, getDimensionsArray, getDouble, getDoubles, getDoubles, getDoubles, getDoubles, getDoubles, getDoubles, getDoublesByAttribute, getDoublesByAttribute, getDoublesByPoint, getDoublesByPoint, getFloat, getFloats, getFloats, getFloats, getFloats, getFloats, getFloats, getFloatsByAttribute, getFloatsByAttribute, getFloatsByPoint, getFloatsByPoint, getInt, getInts, getInts, getInts, getInts, getInts, getInts, getIntsByAttribute, getIntsByAttribute, getIntsByPoint, getIntsByPoint, getLowerBoundsArray, getNumAttributes, getRecordDescriptor, getShort, getShorts, getShorts, getShorts, getShorts, getShorts, getShorts, getShortsByAttribute, getShortsByAttribute, getShortsByPoint, getShortsByPoint, getStorageType, getValues, getValuesByAttribute, getValuesByPoint, longVolume, setAxisOrdering, setBounds, setRecordDescriptor, size, subblock, subblock, subblock, subblock, subblock, subblock, subblock, subblock, subblock, subblock, useBytesOnly, volume
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

numCacheBlocks

protected int numCacheBlocks
Constructor Detail

LRUCacheDataSource

public LRUCacheDataSource(java.lang.String name,
                          ChunkedDataSource ds,
                          int numCacheBlocks)
Create a LRUCacheDataSource with a single CacheBlock connected to the ChunkedDataSource argument. The CacheBlock dimensions match the datasource chunk size. The memory for the cache itself is not allocated until this datasource is activated.


LRUCacheDataSource

public LRUCacheDataSource(java.lang.String name,
                          DataSource ds,
                          IndexSpaceID blockSizes,
                          int numCacheBlocks)
Create a LRUCacheDataSource with a single CacheBlock connected to the DataSource argument. The CacheBlock dimensions are specified by the last argument. The memory for the cache itself is not allocated until this datasource is activated.

Method Detail

activate

public void activate()
Calls activate() for the underlying datasource, and creates the actual cache, which allocates memory for the CacheBlocks.

Overrides:
activate in class BlockCacheDataSource

setIterationBounds

public void setIterationBounds(ISBounds bounds)

main

public static void main(java.lang.String[] args)
For debugging. Runs basic tests on the LRUCacheDataSource class.