World Ocean Simulation System (WOSS) library
|
Abstract class that interfaces Pressure or TimeArr requests from user layer. More...
#include <woss-manager.h>
Public Member Functions | |
WossManager () | |
virtual const Woss & | getActiveWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency) const |
virtual WossManager & | eraseActiveWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency)=0 |
virtual Pressure * | getWossPressure (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, const Time &time_value)=0 |
virtual Pressure * | getWossPressure (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, double time_value=0.0) |
virtual PressureVector | getWossPressure (const CoordZPairVect &coordinates, double start_frequency, double end_frequency, const Time &time_value) |
virtual PressureVector | getWossPressure (const CoordZPairVect &coordinates, double start_frequency, double end_frequency, double time_value=0.0) |
virtual TimeArr * | getWossTimeArr (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, const Time &time_value)=0 |
virtual TimeArr * | getWossTimeArr (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, double time_value=0.0) |
virtual TimeArrVector | getWossTimeArr (const CoordZPairVect &coordinates, double start_frequency, double end_frequency, const Time &time_value) |
virtual TimeArrVector | getWossTimeArr (const CoordZPairVect &coordinates, double start_frequency, double end_frequency, double time_value=0.0) |
virtual bool | reset ()=0 |
virtual bool | timeEvolve (const Time &time_value)=0 |
WossManager & | setWossCreator (const WossCreator *const ptr) |
void | setTimeEvolutionActiveFlag (bool flag) |
void | setDebugFlag (bool flag) |
const WossCreator *const | getWossCreator () |
bool | getTimeEvolutionActiveFlag () |
bool | getDebugFlag () |
Protected Member Functions | |
virtual Woss *const | getWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency)=0 |
Protected Attributes | |
const WossCreator * | woss_creator |
bool | debug |
bool | is_time_evolution_active |
Static Protected Attributes | |
static const Time | NO_EVOLUTION_TIME = Time(1,1,1901,1,1,1) |
Abstract class that interfaces Pressure or TimeArr requests from user layer.
WossManager interfaces the user with the whole library. Every request for Pressure or TimeArr should be done to this class. Logical inteligence for planning CPU load, multi-frequency and multi-run channel simulations should be placed in this inheritance chain
WossManager::WossManager | ( | ) |
WossManager default constructor
|
pure virtual |
Deletes a woss::Woss object for given params
tx | const reference to a valid CoordZ object ( transmitter ) |
rx | const reference to a valid CoordZ object ( receiver ) |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
Implemented in woss::WossManagerSimple< WMResDb >.
|
virtual |
Returns a const reference to a valid and properly initialized woss::Woss object.
tx | const reference to a valid CoordZ object ( transmitter ) |
rx | const reference to a valid CoordZ object ( receiver ) |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
References getWoss().
|
protectedpure virtual |
Returns a pointer to a properly initialized Woss, for storage purposes.
tx | const reference to a valid CoordZ object ( transmitter ) |
rx | const reference to a valid CoordZ object ( receiver ) |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
Implemented in woss::WossManagerSimple< WMResDb >.
Referenced by getActiveWoss(), woss::WossManagerResDb::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), getWossPressure(), woss::WossManagerResDb::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), and getWossTimeArr().
|
pure virtual |
Returns a valid Pressure* for given parameters
tx | const reference to a valid CoordZ object ( transmitter ) |
rx | const reference to a valid CoordZ object ( receiver ) |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
time_value | const reference to a valid Time object |
Implemented in woss::WossManagerResDb, and woss::WossManagerResDbMT.
References debug, woss::Woss::freq_lower_bound(), woss::Woss::getAvgPressure(), woss::CoordZ::getCartDistance(), woss::CoordZ::getDepth(), woss::Coord::getGreatCircleDistance(), woss::Woss::getPressure(), getWoss(), woss::Singleton< T >::instance(), woss::Woss::run(), and woss::Woss::timeEvolve().
Referenced by WossMPropagation::computeGain(), getWossPressure(), getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), getWossPressure(), and woss::WMSMTcreateThreadPressure().
|
virtual |
Returns a valid Pressure* for given parameters
tx | const reference to a valid CoordZ object ( transmitter ) |
rx | const reference to a valid CoordZ object ( receiver ) |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
time_value | const reference to a valid Time object |
Reimplemented in woss::WossManagerResDbMT.
References debug, woss::CoordZ::getCartDistance(), woss::WossCreator::getSimTime(), getWossPressure(), woss::Singleton< T >::instance(), woss::Time::isValid(), and woss_creator.
|
virtual |
Returns a valid vector of Pressure* for given parameters
coordinates | const reference to a valid CoordZPairVect |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
time_value | const reference to a valid Time object |
Reimplemented in woss::WossManagerResDbMT.
References getWossPressure().
|
virtual |
Returns a valid vector of Pressure* for given parameters
coordinates | const reference to a valid CoordZPairVect |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
time_value | seconds after start time |
Reimplemented in woss::WossManagerResDbMT.
References woss::Pressure::createNotValid(), debug, woss::WossCreator::getSimTime(), getWossPressure(), woss::Singleton< T >::instance(), woss::Time::isValid(), and woss_creator.
|
pure virtual |
Returns a valid TimeArr* for given parameters
tx | const reference to a valid CoordZ object ( transmitter ) |
rx | const reference to a valid CoordZ object ( receiver ) |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
time_value | const reference to a valid Time object |
Implemented in woss::WossManagerResDb, and woss::WossManagerResDbMT.
References woss::TimeArr::createImpulse(), debug, woss::Woss::freq_lower_bound(), woss::CoordZ::getCartDistance(), woss::CoordZ::getDepth(), woss::Coord::getGreatCircleDistance(), woss::Woss::getTimeArr(), getWoss(), woss::Singleton< T >::instance(), woss::Woss::run(), and woss::Woss::timeEvolve().
Referenced by getWossTimeArr(), getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), getWossTimeArr(), and woss::WMSMTcreateThreadTimeArr().
|
virtual |
Returns a valid TimeArr* for given parameters
tx | const reference to a valid CoordZ object ( transmitter ) |
rx | const reference to a valid CoordZ object ( receiver ) |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
time_value | const reference to a valid Time object |
Reimplemented in woss::WossManagerResDbMT.
References woss::TimeArr::createImpulse(), debug, woss::CoordZ::getCartDistance(), woss::WossCreator::getSimTime(), getWossTimeArr(), woss::Singleton< T >::instance(), woss::Time::isValid(), and woss_creator.
|
virtual |
Returns a valid vector of TimeArr* for given parameters
coordinates | const reference to a valid CoordZPairVect |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
time_value | const reference to a Time object |
Reimplemented in woss::WossManagerResDbMT.
References getWossTimeArr().
|
virtual |
Returns a valid vector of TimeArr* for given parameters
coordinates | const reference to a valid CoordZPairVect |
start_freq | start frequency [Hz] |
end_freq | end frequency [Hz] |
time_value | number of seconds after start time |
Reimplemented in woss::WossManagerResDbMT.
References woss::TimeArr::createNotValid(), debug, woss::WossCreator::getSimTime(), getWossTimeArr(), woss::Singleton< T >::instance(), woss::Time::isValid(), and woss_creator.
|
pure virtual |
Deletes all created Woss instances
Implemented in woss::WossManagerSimple< WMResDb >.
|
inline |
Sets a pointer to a WossCreator instance, for Woss creation purposes
ptr | const pointer to a const WossCreator instance |
References woss_creator.
Referenced by woss::WossController::initialize().
|
pure virtual |
Performs a time evoulion of all time-dependant parameters of all created Woss instances
time_value | const reference to a valid Time object |
Implemented in woss::WossManagerSimple< WMResDb >.
|
protected |
Debug flag
Referenced by woss::WossManagerResDbMT::checkConcurrentThreads(), woss::WossManagerResDb::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), getWossPressure(), getWossPressure(), woss::WossManagerResDb::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), getWossTimeArr(), getWossTimeArr(), woss::WossManagerResDbMT::initThreadVars(), woss::WossManagerResDbMT::popThreadParamIndex(), woss::WMSMTcreateThreadPressure(), and woss::WMSMTcreateThreadTimeArr().
|
protected |
Const pointer to a WossCreator instance, for Woss creation purposes
Referenced by woss::WossManagerResDb::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), getWossPressure(), getWossPressure(), woss::WossManagerResDb::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), getWossTimeArr(), getWossTimeArr(), and setWossCreator().