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 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. | |
Private Member Functions | |
| void | readPixelType (double *doubleBuff, void *rawBuff, int idx) const |
| bool | writePixelType (double *doubleBuff, void *rawBuff, int idx) const |
Private Attributes | |
| GDALDataset * | m_geodataSet = nullptr |
| std::string | m_geodataSetPath = "" |
| GDALDataType | m_pixelType |
| int | m_lines |
| int | m_samples |
| int | m_bands |
| double | m_offset |
| double | m_scale |
| unsigned char * | m_maskBuff = nullptr |
| bool | m_datasetOwner = false |
| double | m_gdalNoDataValue = NULL8 |
| std::string | m_driverName |
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.
Definition at line 44 of file GdalIoHandler.h.
| Isis::GdalIoHandler::GdalIoHandler | ( | QString & | dataFilePath, |
| const QList< int > * | virtualBandList, | ||
| GDALDataType | pixelType = GDT_Float64, | ||
| GDALAccess | eAccess = GA_ReadOnly ) |
Definition at line 20 of file GdalIoHandler.cpp.
| Isis::GdalIoHandler::GdalIoHandler | ( | GDALDataset * | geodataSet, |
| const QList< int > * | virtualBandList, | ||
| GDALDataType | pixelType = GDT_Float64 ) |
Definition at line 29 of file GdalIoHandler.cpp.
|
virtual |
Definition at line 68 of file GdalIoHandler.cpp.
|
virtualinherited |
Reimplemented in Isis::CubeIoHandler.
Definition at line 28 of file ImageIoHandler.cpp.
|
inlinevirtual |
Definition at line 62 of file GdalIoHandler.h.
|
virtualinherited |
Reimplemented in Isis::CubeIoHandler.
Definition at line 30 of file ImageIoHandler.cpp.
|
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.
Definition at line 58 of file ImageIoHandler.cpp.
References m_writeThreadMutex.
|
virtual |
Implements Isis::ImageIoHandler.
Definition at line 250 of file GdalIoHandler.cpp.
| void Isis::GdalIoHandler::init | ( | ) |
Definition at line 41 of file GdalIoHandler.cpp.
|
virtual |
Implements Isis::ImageIoHandler.
Definition at line 78 of file GdalIoHandler.cpp.
|
private |
Definition at line 263 of file GdalIoHandler.cpp.
|
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). |
Definition at line 41 of file ImageIoHandler.cpp.
References m_virtualBands.
|
virtual |
Function to update the labels with a Pvl object.
| labels | Pvl object to update with |
Implements Isis::ImageIoHandler.
Definition at line 258 of file GdalIoHandler.cpp.
References updateLabels().
Referenced by updateLabels().
|
virtual |
Implements Isis::ImageIoHandler.
Definition at line 167 of file GdalIoHandler.cpp.
|
private |
Definition at line 462 of file GdalIoHandler.cpp.
|
private |
Definition at line 75 of file GdalIoHandler.h.
|
private |
Definition at line 79 of file GdalIoHandler.h.
|
private |
Definition at line 81 of file GdalIoHandler.h.
|
private |
Definition at line 80 of file GdalIoHandler.h.
|
private |
Definition at line 70 of file GdalIoHandler.h.
|
private |
Definition at line 71 of file GdalIoHandler.h.
|
private |
Definition at line 73 of file GdalIoHandler.h.
|
private |
Definition at line 78 of file GdalIoHandler.h.
|
private |
Definition at line 76 of file GdalIoHandler.h.
|
private |
Definition at line 72 of file GdalIoHandler.h.
|
private |
Definition at line 74 of file GdalIoHandler.h.
|
private |
Definition at line 77 of file GdalIoHandler.h.
|
protectedinherited |
Converts from virtual band to physical band.
Definition at line 124 of file ImageIoHandler.h.
Referenced by Isis::CubeIoHandler::findCubeChunks(), Isis::CubeIoHandler::findIntersection(), Isis::CubeIoHandler::read(), setVirtualBands(), and Isis::CubeIoHandler::writeIntoRaw().
|
protectedinherited |
This enables us to block while the write thread is working.
Definition at line 121 of file ImageIoHandler.h.
Referenced by Isis::CubeIoHandler::blockUntilThreadPoolEmpty(), Isis::CubeIoHandler::CubeIoHandler(), dataFileMutex(), Isis::CubeIoHandler::flushWriteCache(), Isis::CubeIoHandler::read(), and Isis::CubeIoHandler::write().