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
CubeDataThreadTester.h
Go to the documentation of this file.
1#ifndef CubeDataThreadTester_h
2#define CubeDataThreadTester_h
7
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include <QThread>
11
12template<typename T> class QList;
13
14namespace Isis {
15 class Brick;
16 class CubeDataThread;
17
25 Q_OBJECT
26
27 public:
29 virtual ~CubeDataThreadTester();
30
33 return p_numTestsDone;
34 }
35
38 return p_cubeDataThread;
39 }
40
41 void Connect();
42 void ReadCubeTest(int);
43 void ReadCubeTest2(int, int);
44 void ReadCubeTest3(int);
45 void WriteCubeTest(int);
46 void WriteCubeTest2(int, int);
47 void WriteCubeTest3(int);
49 void NotifyChangeTest(int);
50
51 public slots:
52 void ReadBrick(void *requester, int cubeId, const Isis::Brick *data);
53 void ReadWriteBrick(void *requester, int cubeId, Isis::Brick *data);
54 void BrickChanged(int cubeId, const Isis::Brick *data);
55
56 signals:
68 void RequestReadCube(int cubeId, int startSample, int startLine,
69 int endSample, int endLine, int band, void *caller);
70
71
83 void RequestReadWriteCube(int cubeId, int startSample, int startLine,
84 int endSample, int endLine, int band, void *caller);
85
86
91 void NotifyDoneWithData(int, const Isis::Brick *);
92
93 private:
95 void run();
96
98 int p_numTestsDone;
99
101 CubeDataThread *p_cubeDataThread;
102
104 bool p_execStarted;
105
107 bool p_notifyDone;
108
110 QVector< QPair<int, const Isis::Brick *> > * p_cachedDoneBricks;
111 };
112
113};
114
115
116#endif
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:58
void Connect()
This connects this class' signals and slots with CubeDataThread's signals and slots.
Definition CubeDataThreadTester.cpp:52
void RequestReadWriteCube(int cubeId, int startSample, int startLine, int endSample, int endLine, int band, void *caller)
Ask for a brick for reading and writing.
void ReadCubeTest(int)
This tests a basic read.
Definition CubeDataThreadTester.cpp:99
void ReadBrick(void *requester, int cubeId, const Isis::Brick *data)
This is called when a brick is read.
Definition CubeDataThreadTester.cpp:228
void WriteCubeTest(int)
This tests a basic write.
Definition CubeDataThreadTester.cpp:141
void WriteCubeTest2(int, int)
This tests two non-conflicting writes.
Definition CubeDataThreadTester.cpp:154
CubeDataThread * DataThread()
Returns the cube data thread being tested.
Definition CubeDataThreadTester.h:37
void ReadCubeTest3(int)
This tests an overlapping read.
Definition CubeDataThreadTester.cpp:126
void NotifyChangeTest(int)
This test tests this automatic change notifications.
Definition CubeDataThreadTester.cpp:206
virtual ~CubeDataThreadTester()
This cleans up the cube data thread.
Definition CubeDataThreadTester.cpp:78
CubeDataThreadTester(CubeDataThread *)
This initializes a CubeDataThreadTester.
Definition CubeDataThreadTester.cpp:33
void ReadCubeTest2(int, int)
This tests two basic reads with no conflicts.
Definition CubeDataThreadTester.cpp:111
void WriteCubeTest3(int)
This tests two conflicting* writes.
Definition CubeDataThreadTester.cpp:172
void WriteCubeTest3BreakDeadlock()
This test breaks the deadlock caused by the third write test.
Definition CubeDataThreadTester.cpp:186
int NumberOfTestsDone()
Returns the number of tests done (testing methods count as several)
Definition CubeDataThreadTester.h:32
void RequestReadCube(int cubeId, int startSample, int startLine, int endSample, int endLine, int band, void *caller)
Ask for a brick for reading.
void ReadWriteBrick(void *requester, int cubeId, Isis::Brick *data)
This is called when a brick is given for R/W.
Definition CubeDataThreadTester.cpp:283
void NotifyDoneWithData(int, const Isis::Brick *)
Let the cube data thread know we're no longer working with a particular brick.
void BrickChanged(int cubeId, const Isis::Brick *data)
This is called when a brick is written.
Definition CubeDataThreadTester.cpp:360
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