USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::FilterCachingAlgorithm Class Reference

This algorithm is designed for applications that use ProcessByQuickFilter or very similar I/O patterns to cache cube data appropriately. More...

#include <FilterCachingAlgorithm.h>

Inheritance diagram for Isis::FilterCachingAlgorithm:
Inheritance graph
[legend]
Collaboration diagram for Isis::FilterCachingAlgorithm:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 FilterCachingAlgorithm (int numParallelIOs)
 Construct a new FilterCachingAlgorithm.
virtual ~FilterCachingAlgorithm ()
 Frees the memory allocated by this caching algorithm.
virtual CacheResult recommendChunksToFree (QList< RawCubeChunk * > allocated, QList< RawCubeChunk * > justUsed, const Buffer &justRequested)
 Please see the class description for how this algorithm works.

Private Attributes

QList< QList< RawCubeChunk * > > * m_chunksToKeep
 This is stored from parallel read # -> list of chunks for that read.
int m_currentIo
 This keeps track of our position inside of m_chunksToKeep.

Detailed Description

This algorithm is designed for applications that use ProcessByQuickFilter or very similar I/O patterns to cache cube data appropriately.

The last numParallelIOs worth of I/Os will be left in the cache.

Author:
????-??-?? Jai Rideout and Steven Lambright

For internal use only.

Definition at line 39 of file FilterCachingAlgorithm.h.


Constructor & Destructor Documentation

Isis::FilterCachingAlgorithm::FilterCachingAlgorithm ( int  numParallelIOs  ) 

Construct a new FilterCachingAlgorithm.

The last numParallelIOs will be kept in the cache, while the other chunks in the cache will all be tossed.

Parameters:
numParallelIOs The number of IO operations to keep the chunks around for.

Definition at line 44 of file FilterCachingAlgorithm.cpp.

References m_chunksToKeep, and m_currentIo.

Isis::FilterCachingAlgorithm::~FilterCachingAlgorithm (  )  [virtual]

Frees the memory allocated by this caching algorithm.

Definition at line 58 of file FilterCachingAlgorithm.cpp.

References m_chunksToKeep.


Member Function Documentation

CubeCachingAlgorithm::CacheResult Isis::FilterCachingAlgorithm::recommendChunksToFree ( QList< RawCubeChunk * >  allocated,
QList< RawCubeChunk * >  justUsed,
const Buffer justRequested 
) [virtual]

Please see the class description for how this algorithm works.

Parameters:
allocated All of the allocated cube chunks
justUsed The cube chunks used in the last I/O
justRequested The buffer passed into the last I/O
Returns:
The chunks that should be removed from memory

Implements Isis::CubeCachingAlgorithm.

Definition at line 76 of file FilterCachingAlgorithm.cpp.

References m_chunksToKeep, and m_currentIo.


Member Data Documentation

This is stored from parallel read # -> list of chunks for that read.

All chunks not in this list are freed from memory.

Definition at line 53 of file FilterCachingAlgorithm.h.

Referenced by FilterCachingAlgorithm(), recommendChunksToFree(), and ~FilterCachingAlgorithm().

This keeps track of our position inside of m_chunksToKeep.

Definition at line 58 of file FilterCachingAlgorithm.h.

Referenced by FilterCachingAlgorithm(), and recommendChunksToFree().


The documentation for this class was generated from the following files: