File failed to load: https://isis.astrogeology.usgs.gov/dev/Object/assets/jax/output/NativeMML/config.js
Isis Developer Reference
ImageIoHandler.h
Go to the documentation of this file.
1
5
6/* SPDX-License-Identifier: CC0-1.0 */
7
8#ifndef ImageIoHandler_h
9#define ImageIoHandler_h
10
11#include "Constants.h"
12
13class QFile;
14class QMutex;
15template <typename A> class QList;
16
17namespace Isis {
18 class Buffer;
20 class Pvl;
21
100 public:
101 ImageIoHandler(const QList<int> *virtualBandList);
102 virtual ~ImageIoHandler();
103
104 virtual void read(Buffer &bufferToFill) const = 0;
105 virtual void write(const Buffer &bufferToWrite) = 0;
106
107 virtual void addCachingAlgorithm(CubeCachingAlgorithm *algorithm);
108 virtual void clearCache(bool blockForWriteCache = true) const;
109 virtual BigInt getDataSize() const = 0;
110 void setVirtualBands(const QList<int> *virtualBandList);
116 virtual void updateLabels(Pvl &labels) = 0;
117 QMutex *dataFileMutex();
118
119 protected:
122
125 };
126}
127
128#endif
Buffer for reading and writing cube data.
Definition Buffer.h:53
This is the parent of the caching algorithms.
Definition CubeCachingAlgorithm.h:31
QList< int > * m_virtualBands
Converts from virtual band to physical band.
Definition ImageIoHandler.h:124
virtual void updateLabels(Pvl &labels)=0
Function to update the labels with a Pvl object.
virtual void addCachingAlgorithm(CubeCachingAlgorithm *algorithm)
Definition ImageIoHandler.cpp:28
void setVirtualBands(const QList< int > *virtualBandList)
This changes the virtual band list.
Definition ImageIoHandler.cpp:41
QMutex * m_writeThreadMutex
This enables us to block while the write thread is working.
Definition ImageIoHandler.h:121
virtual void write(const Buffer &bufferToWrite)=0
ImageIoHandler(const QList< int > *virtualBandList)
Definition ImageIoHandler.cpp:12
virtual void clearCache(bool blockForWriteCache=true) const
Definition ImageIoHandler.cpp:30
virtual void read(Buffer &bufferToFill) const =0
virtual ~ImageIoHandler()
Definition ImageIoHandler.cpp:20
QMutex * dataFileMutex()
Get the mutex that this IO handler is using around I/Os on the given data file.
Definition ImageIoHandler.cpp:58
virtual BigInt getDataSize() const =0
Container for cube-like labels.
Definition Pvl.h:122
This is free and unencumbered software released into the public domain.
Definition BoxcarCachingAlgorithm.h:13
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
long long int BigInt
Big int.
Definition Constants.h:49