An official website of the United States government
Here’s how you know
Official websites use .gov
A
.gov website belongs to an official government
organization in the United States.
Secure .gov websites use HTTPS
A
lock
( ) or https:// means you’ve safely connected to
the .gov website. Share sensitive information only on official,
secure websites.
Isis Developer Reference
|
Handles converting buffers to and from disk. More...
#include <GdalIoHandler.h>
Public Member Functions | |
GdalIoHandler (QString &dataFilePath, const QList< int > *virtualBandList, GDALDataType pixelType=GDT_Float64, GDALAccess eAccess=GA_ReadOnly) | |
GdalIoHandler (GDALDataset *geodataSet, const QList< int > *virtualBandList, GDALDataType pixelType=GDT_Float64) | |
void | init () |
virtual | ~GdalIoHandler () |
virtual void | read (Buffer &bufferToFill) const |
virtual void | write (const Buffer &bufferToWrite) |
virtual BigInt | getDataSize () const |
virtual void | updateLabels (Pvl &labels) |
Function to update the labels with a Pvl object. | |
virtual void | clearCache (bool blockForWriteCache=false) |
virtual void | addCachingAlgorithm (CubeCachingAlgorithm *algorithm) |
virtual void | clearCache (bool blockForWriteCache=true) const |
void | setVirtualBands (const QList< int > *virtualBandList) |
This changes the virtual band list. | |
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. | |
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.
Isis::GdalIoHandler::GdalIoHandler | ( | QString & | dataFilePath, |
const QList< int > * | virtualBandList, | ||
GDALDataType | pixelType = GDT_Float64, | ||
GDALAccess | eAccess = GA_ReadOnly ) |
References Isis::ImageIoHandler::ImageIoHandler(), and init().
Isis::GdalIoHandler::GdalIoHandler | ( | GDALDataset * | geodataSet, |
const QList< int > * | virtualBandList, | ||
GDALDataType | pixelType = GDT_Float64 ) |
References _FILEINFO_, Isis::ImageIoHandler::ImageIoHandler(), init(), and Isis::IException::Programmer.
|
virtual |
References clearCache().
|
virtualinherited |
Reimplemented in Isis::CubeIoHandler.
|
inlinevirtual |
Referenced by ~GdalIoHandler().
|
virtualinherited |
Reimplemented in Isis::CubeIoHandler.
|
inherited |
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.
References m_writeThreadMutex.
|
virtual |
Implements Isis::ImageIoHandler.
void Isis::GdalIoHandler::init | ( | ) |
References Isis::NULL8.
Referenced by GdalIoHandler(), and GdalIoHandler().
|
virtual |
Implements Isis::ImageIoHandler.
References _FILEINFO_, Isis::Buffer::Band(), Isis::Buffer::BandDimension(), Isis::Buffer::CopyOverlapFrom(), Isis::Buffer::DoubleBuffer(), Isis::GdalPixelToIsis(), Isis::Buffer::Line(), Isis::Buffer::LineDimension(), Isis::Buffer::LineDimensionScaled(), Isis::ImageIoHandler::m_virtualBands, Isis::NULL8, Isis::Buffer::PixelType(), Isis::Buffer::RawBuffer(), Isis::Buffer::Sample(), Isis::Buffer::SampleDimension(), Isis::Buffer::SampleDimensionScaled(), Isis::Buffer::scale(), Isis::Brick::SetBasePosition(), Isis::SizeOf(), and Isis::IException::Unknown.
|
inherited |
This changes the virtual band list.
virtualBandList | A 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().
|
virtual |
Function to update the labels with a Pvl object.
labels | Pvl object to update with |
Implements Isis::ImageIoHandler.
References Isis::PvlContainer::addKeyword(), Isis::PvlObject::findObject(), and Isis::PvlContainer::Replace.
|
virtual |
Implements Isis::ImageIoHandler.
References _FILEINFO_, Isis::Buffer::Band(), Isis::Buffer::BandDimension(), Isis::Buffer::DoubleBuffer(), Isis::Buffer::Line(), Isis::Buffer::LineDimension(), Isis::ImageIoHandler::m_virtualBands, Isis::Buffer::PixelType(), Isis::Buffer::RawBuffer(), Isis::Buffer::Sample(), Isis::Buffer::SampleDimension(), Isis::SizeOf(), and Isis::IException::Unknown.
|
protectedinherited |
Converts from virtual band to physical band.
Referenced by ImageIoHandler(), Isis::CubeIoHandler::read(), Isis::GdalIoHandler::read(), setVirtualBands(), Isis::GdalIoHandler::write(), and ~ImageIoHandler().
|
protectedinherited |
This enables us to block while the write thread is working.
Referenced by Isis::CubeIoHandler::CubeIoHandler(), dataFileMutex(), ImageIoHandler(), Isis::CubeIoHandler::read(), Isis::CubeIoHandler::write(), and ~ImageIoHandler().