|
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 | ~WossManager ()=default |
| virtual std::shared_ptr< Woss > | getActiveWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency) |
| virtual WossManager & | eraseActiveWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency)=0 |
| virtual std::unique_ptr< Pressure > | getWossPressure (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, const Time &time_value)=0 |
| virtual std::unique_ptr< 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 std::unique_ptr< TimeArr > | getWossTimeArr (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, const Time &time_value)=0 |
| virtual std::unique_ptr< 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 std::shared_ptr< WossCreator > &ptr) |
| void | setTimeEvolutionActiveFlag (bool flag) |
| void | setDebugFlag (bool flag) |
| std::shared_ptr< WossCreator > | getWossCreator () const |
| bool | getTimeEvolutionActiveFlag () const |
| bool | getDebugFlag () const |
Protected Member Functions | |
| virtual std::shared_ptr< Woss > | getWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency)=0 |
Protected Attributes | |
| std::shared_ptr< WossCreator > | woss_creator |
| bool | debug |
| bool | is_time_evolution_active |
Static Protected Attributes | |
| static const Time | NO_EVOLUTION_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
|
virtualdefault |
|
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 shared_ptr 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().

|
inline |
References debug.
|
inline |
References is_time_evolution_active.
|
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().
|
inline |
References woss_creator.
Referenced by woss::WossManagerResDbMT::getWossPressure(), and woss::WossManagerResDbMT::getWossTimeArr().
|
pure virtual |
Returns a valid unique_ptr<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::CoordZ::getCartDistance(), woss::CoordZ::getDepth(), woss::Coord::getGreatCircleDistance(), getWoss(), and woss::Singleton< T >::instance().
Referenced by WossMPropagation::computeGain(), getWossPressure(), getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), and getWossPressure().

|
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(), getWossPressure(), woss::Singleton< T >::instance(), woss::Time::isValid(), woss::SimTime::start_time, 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, getWossPressure(), woss::Singleton< T >::instance(), woss::Time::isValid(), woss::SimTime::start_time, 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::CoordZ::getCartDistance(), woss::CoordZ::getDepth(), woss::Coord::getGreatCircleDistance(), getWoss(), and woss::Singleton< T >::instance().
Referenced by WossChannelModule::computeTimeArrVector(), getWossTimeArr(), getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), and getWossTimeArr().

|
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(), getWossTimeArr(), woss::Singleton< T >::instance(), woss::Time::isValid(), woss::SimTime::start_time, 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, getWossTimeArr(), woss::Singleton< T >::instance(), woss::Time::isValid(), woss::SimTime::start_time, and woss_creator.

|
pure virtual |
Deletes all created Woss instances
Implemented in woss::WossManagerSimple< WMResDb >.
|
inline |
References debug.
|
inline |
References is_time_evolution_active.
|
inline |
Sets a pointer to a WossCreator instance, for Woss creation purposes
| ptr | const pointer to a const WossCreator instance |
References woss_creator.
|
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(), getDebugFlag(), woss::WossManagerResDb::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), getWossPressure(), woss::WossManagerResDb::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), getWossTimeArr(), and setDebugFlag().
|
protected |
|
staticprotected |
|
protected |
Const pointer to a WossCreator instance, for Woss creation purposes
Referenced by getWossCreator(), woss::WossManagerResDb::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), getWossPressure(), getWossPressure(), woss::WossManagerResDb::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), getWossTimeArr(), getWossTimeArr(), and setWossCreator().