Brief description of class still missing. More...
#include <RealTimeArrayProcess.h>
Public Member Functions | |
| bool | isWaiting () const |
| bool | isWaiting () const |
| RealTimeArrayProcess (RealTimeArrayManager *manager, ArrayStations *array) | |
| RealTimeArrayProcess (RealTimeArrayManager *manager, ArrayStations *array) | |
| void | setFrequencyBands (const QVector< GaussianFrequencyBand > *bands) |
| void | setFrequencyBands (const QVector< GaussianFrequencyBand > *bands) |
| void | setKmax (double k) |
| void | setKmin (double k) |
| void | setMaximumSlowness (double s) |
| void | setWavenumberRange (double kmin, double kmax) |
| void | terminate () |
| void | terminate () |
| bool | terminated () const |
| bool | terminated () const |
| ~RealTimeArrayProcess () | |
| ~RealTimeArrayProcess () | |
Protected Member Functions | |
| virtual void | run () |
| virtual void | run () |
Brief description of class still missing.
Full description of class still missing
| RealTimeArrayProcess::RealTimeArrayProcess | ( | RealTimeArrayManager * | manager, |
| ArrayStations * | array | ||
| ) |
| RealTimeArrayProcess::RealTimeArrayProcess | ( | RealTimeArrayManager * | manager, |
| ArrayStations * | array | ||
| ) |
| bool RealTimeArrayProcess::isWaiting | ( | ) | const [inline] |
{return _waiting.testAndSetOrdered(true, true);}
| bool RealTimeArrayProcess::isWaiting | ( | ) | const [inline] |
{return _waiting.testAndSetOrdered(true, true);}
| void RealTimeArrayProcess::run | ( | ) | [protected, virtual] |
{
_manager->_mutex.lock();
while(true) {
while(true) {
if(_terminate.testAndSetOrdered(true, true)) {
_manager->_mutex.unlock();
return;
}
// Check for new tasks, if nothing to do, the thread goes in sleep mode
if(_manager->_tasks.isEmpty()) break;
ArrayTask * t=_manager->takeTask();
//checkblocks(true, false);
run(t);
//checkblocks(true, false);
delete t;
_manager->_mutex.lock();
}
printf("%s: sleeping, manager %p\n",objectName().toAscii().data(),_manager);
_waiting.fetchAndStoreOrdered(true);
_manager->_event.wait(&_manager->_mutex);
_waiting.fetchAndStoreOrdered(false);
printf("%s: waking up, manager %p\n",objectName().toAscii().data(),_manager);
}
}
| virtual void RealTimeArrayProcess::run | ( | ) | [protected, virtual] |
| void RealTimeArrayProcess::setFrequencyBands | ( | const QVector< GaussianFrequencyBand > * | bands | ) | [inline] |
{_bands=bands;}
| void RealTimeArrayProcess::setFrequencyBands | ( | const QVector< GaussianFrequencyBand > * | bands | ) | [inline] |
Referenced by RealTimeArrayManager::RealTimeArrayManager().
{_bands=bands;}
| void RealTimeArrayProcess::setKmax | ( | double | k | ) |
{
_gridSize=k;
}
| void RealTimeArrayProcess::setKmin | ( | double | k | ) |
{
_fkGridStep=0.25*k;
_hrfkGridStep=0.1*k;
}
| void RealTimeArrayProcess::setMaximumSlowness | ( | double | s | ) |
References PhaseShifter::setMaximumSlowness().
{
_phaseShifter.setMaximumSlowness(s);
}
| void RealTimeArrayProcess::setWavenumberRange | ( | double | kmin, |
| double | kmax | ||
| ) |
References QGpCoreTools::GridSearch::setGrid().
| void RealTimeArrayProcess::terminate | ( | ) | [inline] |
{_terminate.fetchAndStoreOrdered(true);}
| void RealTimeArrayProcess::terminate | ( | ) | [inline] |
{_terminate.fetchAndStoreOrdered(true);}
| bool RealTimeArrayProcess::terminated | ( | ) | const [inline] |
{return _terminate.testAndSetOrdered(true, true);}
| bool RealTimeArrayProcess::terminated | ( | ) | const [inline] |
{return _terminate.testAndSetOrdered(true, true);}