1#ifndef CubeDataThread_h 
    2#define CubeDataThread_h 
   12template<
typename T> 
class QList;
 
   14template<
typename A, 
typename B> 
struct QPair;
 
   15template<
typename A, 
typename B> 
class QMap;
 
   24  class UniversalGroundMap;
 
   67                  bool mustOpenReadWrite = 
false);
 
   83      void ReadCube(
int cubeId, 
int startSample, 
int startLine,
 
   84                    int endSample, 
int endLine, 
int band, 
void *caller);
 
   85      void ReadWriteCube(
int cubeId, 
int startSample, 
int startLine,
 
   86                         int endSample, 
int endLine, 
int band, 
void *caller);
 
  154      int OverlapIndex(
const Brick *initial, 
int cubeId,
 
  155                       int instanceNum, 
bool &exact);
 
  157      void GetCubeData(
int cubeId, 
int ss, 
int sl, 
int es, 
int el, 
int band,
 
  158                       void *caller, 
bool sharedLock);
 
  160      void AcquireLock(QReadWriteLock *lockObject, 
bool readLock);
 
  162      bool FreeBrick(
int brickIndex);
 
  174      QMutex *p_threadSafeMutex;
 
  205      int p_numChangeListeners;
 
  208      unsigned int p_currentId;
 
  217      unsigned int p_currentLocksWaiting;
 
Buffer for containing a three dimensional section of an image.
Definition: Brick.h:45
 
Encapsulation of Cube I/O with Change Notifications.
Definition: CubeDataThread.h:59
 
CubeDataThread()
This constructs a CubeDataThread().
Definition: CubeDataThread.cpp:35
 
int BricksInMemory()
This is a helper method for both testing/debugging and general information that provides the current ...
Definition: CubeDataThread.cpp:734
 
void BrickChanged(int cubeId, const Isis::Brick *data)
DO NOT CONNECT TO THIS SIGNAL WITHOUT CALLING AddChangeListener().
 
void RemoveChangeListener()
You must call this method after disconnecting from the BrickChanged signal, otherwise bricks cannot b...
Definition: CubeDataThread.cpp:238
 
UniversalGroundMap * GetUniversalGroundMap(int cubeId) const
This returns a new Universal Ground Map given a Cube ID.
Definition: CubeDataThread.cpp:750
 
int AddCube(const FileName &fileName, bool mustOpenReadWrite=false)
This method is designed to be callable from any thread before data is requested, though no known side...
Definition: CubeDataThread.cpp:125
 
virtual ~CubeDataThread()
This class is a self-contained thread, so normally it would be bad to simply delete it.
Definition: CubeDataThread.cpp:66
 
int FindCubeId(const Cube *) const
Given a Cube pointer, return the cube ID associated with it.
Definition: CubeDataThread.cpp:351
 
void AddChangeListener()
You must call this method after connecting to the BrickChanged signal, otherwise you are not guarante...
Definition: CubeDataThread.cpp:230
 
void ReadWriteCube(int cubeId, int startSample, int startLine, int endSample, int endLine, int band, void *caller)
This slot should be connected to and upon receiving a signal it will begin the necessary cube I/O to ...
Definition: CubeDataThread.cpp:462
 
const Cube * GetCube(int cubeId) const
This returns a constant pointer to a Cube at the given Cube ID.
Definition: CubeDataThread.cpp:767
 
void ReadCube(int cubeId, int startSample, int startLine, int endSample, int endLine, int band, void *caller)
This slot should be connected to and upon receiving a signal it will begin the necessary cube I/O to ...
Definition: CubeDataThread.cpp:427
 
void RemoveCube(int cubeId)
Removes a cube from this lock manager.
Definition: CubeDataThread.cpp:192
 
void ReadReady(void *requester, int cubeId, const Isis::Brick *data)
This signal will be emitted when ReadCube has finished processing.
 
void DoneWithData(int, const Isis::Brick *)
When done processing with a brick (reading or writing) this slot needs to be signalled to free locks ...
Definition: CubeDataThread.cpp:587
 
void ReadWriteReady(void *requester, int cubeId, Isis::Brick *data)
This signal will be emitted when ReadWriteCube has finished processing.
 
IO Handler for Isis Cubes.
Definition: Cube.h:168
 
File name manipulation and expansion.
Definition: FileName.h:100
 
Universal Ground Map.
Definition: UniversalGroundMap.h:69
 
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: CubeIoHandler.h:22
 
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
 
This is free and unencumbered software released into the public domain.
Definition: CubeIoHandler.h:23