File failed to load: https://isis.astrogeology.usgs.gov/dev/Object/assets/jax/output/NativeMML/config.js
Isis Developer Reference
Isis::ImageIoHandler Class Referenceabstract

Handles converting buffers to and from disk. More...

#include <ImageIoHandler.h>

Inheritance diagram for Isis::ImageIoHandler:
Inheritance graph
Collaboration diagram for Isis::ImageIoHandler:
Collaboration graph

Public Member Functions

 ImageIoHandler (const QList< int > *virtualBandList)
 
virtual ~ImageIoHandler ()
 
virtual void read (Buffer &bufferToFill) const =0
 
virtual void write (const Buffer &bufferToWrite)=0
 
virtual void addCachingAlgorithm (CubeCachingAlgorithm *algorithm)
 
virtual void clearCache (bool blockForWriteCache=true) const
 
virtual BigInt getDataSize () const =0
 
void setVirtualBands (const QList< int > *virtualBandList)
 This changes the virtual band list.
 
virtual void updateLabels (Pvl &labels)=0
 Function to update the labels with a Pvl object.
 
QMutex * dataFileMutex ()
 Get the mutex that this IO handler is using around I/Os on the given data file.
 

Protected Attributes

QMutex * m_writeThreadMutex
 This enables us to block while the write thread is working.
 
QList< int > * m_virtualBands
 Converts from virtual band to physical band.
 

Detailed Description

Handles converting buffers to and from disk.

This class handles converting buffers to and from disk. This class holds the cube chunks in memory and is capable of reading and writing them. It asks the caching algorithms to recommend cube chunks to not keep in memory. Children need to call setChunkSizes() in their constructor.

This class handles all of the virtual band conversions. This class also guarantees that unwritten cube data ends up read and written as NULLs. The default caching algorithm is a RegionalCachingAlgorithm.

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

Constructor & Destructor Documentation

◆ ImageIoHandler()

Isis::ImageIoHandler::ImageIoHandler ( const QList< int > * virtualBandList)

◆ ~ImageIoHandler()

Isis::ImageIoHandler::~ImageIoHandler ( )
virtual

Member Function Documentation

◆ addCachingAlgorithm()

void Isis::ImageIoHandler::addCachingAlgorithm ( CubeCachingAlgorithm * algorithm)
virtual

Reimplemented in Isis::CubeIoHandler.

◆ clearCache()

void Isis::ImageIoHandler::clearCache ( bool blockForWriteCache = true) const
virtual

Reimplemented in Isis::CubeIoHandler.

◆ dataFileMutex()

QMutex * Isis::ImageIoHandler::dataFileMutex ( )

Get the mutex that this IO handler is using around I/Os on the given data file.

A lock should be acquired before doing any reads/writes on the data file externally.

Returns
A mutex that can guarantee exclusive access to the data file

References m_writeThreadMutex.

◆ getDataSize()

virtual BigInt Isis::ImageIoHandler::getDataSize ( ) const
pure virtual

◆ read()

virtual void Isis::ImageIoHandler::read ( Buffer & bufferToFill) const
pure virtual

◆ setVirtualBands()

void Isis::ImageIoHandler::setVirtualBands ( const QList< int > * virtualBandList)

This changes the virtual band list.

Parameters
virtualBandListA list where the indices are the vbands and the values are the physical bands. The values are 1-based. This can be specified as NULL, in which case the vbands are the physical bands. The virtual band list is copied (the pointer provided isn't remembered).

References m_virtualBands.

Referenced by ImageIoHandler().

◆ updateLabels()

virtual void Isis::ImageIoHandler::updateLabels ( Pvl & labels)
pure virtual

Function to update the labels with a Pvl object.

Parameters
labelsPvl object to update with

Implemented in Isis::CubeBsqHandler, Isis::CubeIoHandler, Isis::CubeTileHandler, and Isis::GdalIoHandler.

◆ write()

virtual void Isis::ImageIoHandler::write ( const Buffer & bufferToWrite)
pure virtual

Member Data Documentation

◆ m_virtualBands

QList<int>* Isis::ImageIoHandler::m_virtualBands
protected

◆ m_writeThreadMutex

QMutex* Isis::ImageIoHandler::m_writeThreadMutex
protected

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