World Ocean Simulation System (WOSS) library
woss::WossManagerSimple< WMResDb > Class Template Reference

simple template extension of WossManagerResDb or WossManagerResDbMT More...

#include <woss-manager-simple.h>

Inheritance diagram for woss::WossManagerSimple< WMResDb >:
Inheritance graph
Collaboration diagram for woss::WossManagerSimple< WMResDb >:
Collaboration graph

Public Member Functions

 WossManagerSimple ()
virtual ~WossManagerSimple () override=default
virtual WossManagerSimpleeraseActiveWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency) override
virtual bool reset () override
virtual bool timeEvolve (const Time &time_value) override
Public Member Functions inherited from woss::WossManagerResDb
 WossManagerResDb ()
virtual ~WossManagerResDb () override=default
virtual std::unique_ptr< PressuregetWossPressure (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, const Time &time_value) override
virtual std::unique_ptr< TimeArrgetWossTimeArr (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, const Time &time_value) override
WossManagerResDbsetWossDbManager (const std::shared_ptr< WossDbManager > &ptr)
Public Member Functions inherited from woss::WossManager
 WossManager ()
virtual ~WossManager ()=default
virtual std::shared_ptr< WossgetActiveWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency)
virtual std::unique_ptr< PressuregetWossPressure (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< TimeArrgetWossTimeArr (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)
WossManagersetWossCreator (const std::shared_ptr< WossCreator > &ptr)
void setTimeEvolutionActiveFlag (bool flag)
void setDebugFlag (bool flag)
std::shared_ptr< WossCreatorgetWossCreator () const
bool getTimeEvolutionActiveFlag () const
bool getDebugFlag () const

Static Public Member Functions

static void setSpaceSampling (double radius)
static double getSpaceSampling ()

Protected Types

using WossCoordZMap = typename std::map< CoordZ, std::shared_ptr<Woss>, CoordComparator< WossManagerSimple, CoordZ > >
using WCZIter = typename WossCoordZMap::iterator
using WCZRIter = typename WossCoordZMap::reverse_iterator
using WossContainer = typename std::map< CoordZ, WossCoordZMap, CoordComparator< WossManagerSimple, CoordZ > >
using WCIter = typename WossContainer::iterator
using WCRIter = typename WossContainer::reverse_iterator

Protected Member Functions

virtual std::shared_ptr< WossgetWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency) override
Protected Member Functions inherited from woss::WossManagerResDb
std::unique_ptr< TimeArrdbGetTimeArr (const CoordZ &tx, const CoordZ &rx, double frequency, const Time &time_value) const
void dbInsertTimeArr (const CoordZ &tx, const CoordZ &rx, double frequency, const Time &time_value, const TimeArr &channel) const
std::unique_ptr< PressuredbGetPressure (const CoordZ &tx, const CoordZ &rx, double frequency, const Time &time_value) const
void dbInsertPressure (const CoordZ &tx, const CoordZ &rx, double frequency, const Time &time_value, const Pressure &press) const

Protected Attributes

WossContainer woss_map
Protected Attributes inherited from woss::WossManagerResDb
std::shared_ptr< WossDbManagerwoss_db_manager
Protected Attributes inherited from woss::WossManager
std::shared_ptr< WossCreatorwoss_creator
bool debug
bool is_time_evolution_active

Static Protected Attributes

static double space_sampling
Static Protected Attributes inherited from woss::WossManager
static const Time NO_EVOLUTION_TIME = {1, 1, 1901 , 1, 1, 1}

Detailed Description

template<typename WMResDb = WossManagerResDb>
class woss::WossManagerSimple< WMResDb >

simple template extension of WossManagerResDb or WossManagerResDbMT

WossManagerSimple is a simple but functional template extension of WossManagerResDb or WossManagerResDbMT. It creates a Woss for every tx-rx pair. No memory management is done. In simulation with high mobility rate, a Woss for every receiver will be created everytime a transmitter will move, without removing old objects. If a memory management is needed, the user should extend this class to suit his needs.

Member Typedef Documentation

◆ WCIter

template<typename WMResDb = WossManagerResDb>
using woss::WossManagerSimple< WMResDb >::WCIter = typename WossContainer::iterator
protected

◆ WCRIter

template<typename WMResDb = WossManagerResDb>
using woss::WossManagerSimple< WMResDb >::WCRIter = typename WossContainer::reverse_iterator
protected

◆ WCZIter

template<typename WMResDb = WossManagerResDb>
using woss::WossManagerSimple< WMResDb >::WCZIter = typename WossCoordZMap::iterator
protected

◆ WCZRIter

template<typename WMResDb = WossManagerResDb>
using woss::WossManagerSimple< WMResDb >::WCZRIter = typename WossCoordZMap::reverse_iterator
protected

◆ WossContainer

template<typename WMResDb = WossManagerResDb>
using woss::WossManagerSimple< WMResDb >::WossContainer = typename std::map< CoordZ, WossCoordZMap, CoordComparator< WossManagerSimple, CoordZ > >
protected

Map that links a transmitter CoordZ to a WossCoordZMap

◆ WossCoordZMap

template<typename WMResDb = WossManagerResDb>
using woss::WossManagerSimple< WMResDb >::WossCoordZMap = typename std::map< CoordZ, std::shared_ptr<Woss>, CoordComparator< WossManagerSimple, CoordZ > >
protected

Map that links a receiver CoordZ to a pointer to a valid Woss object

Constructor & Destructor Documentation

◆ WossManagerSimple()

template<typename WMResDb>
woss::WossManagerSimple< WMResDb >::WossManagerSimple ( )

WossManagerSimple default constructor

References woss_map.

Referenced by eraseActiveWoss(), and ~WossManagerSimple().

◆ ~WossManagerSimple()

template<typename WMResDb = WossManagerResDb>
virtual woss::WossManagerSimple< WMResDb >::~WossManagerSimple ( )
overridevirtualdefault

References WossManagerSimple().

Here is the call graph for this function:

Member Function Documentation

◆ eraseActiveWoss()

template<typename WMResDb>
WossManagerSimple< WMResDb > & woss::WossManagerSimple< WMResDb >::eraseActiveWoss ( const CoordZ & tx,
const CoordZ & rx,
double start_frequency,
double end_frequency )
overridevirtual

Deletes a woss::Woss object for given params

Parameters
txconst reference to a valid CoordZ object ( transmitter )
rxconst reference to a valid CoordZ object ( receiver )
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
Returns
reference to *this

Implements woss::WossManager.

References woss_map, and WossManagerSimple().

Here is the call graph for this function:

◆ getSpaceSampling()

template<typename WMResDb = WossManagerResDb>
double woss::WossManagerSimple< WMResDb >::getSpaceSampling ( )
inlinestatic

Gets the radius in meters of a cartesian sphere, in which all coordinates are considered to be equivalent

Returns
radius in meters

References space_sampling.

◆ getWoss()

template<typename WMResDb>
std::shared_ptr< Woss > woss::WossManagerSimple< WMResDb >::getWoss ( const CoordZ & tx,
const CoordZ & rx,
double start_frequency,
double end_frequency )
overrideprotectedvirtual

Returns a pointer to a properly initialized Woss, for storage purposes

Parameters
txconst reference to a valid CoordZ object ( transmitter )
rxconst reference to a valid CoordZ object ( receiver )
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
Returns
pointer to a valid Woss object

Implements woss::WossManager.

References woss::WossManager::woss_creator, and woss_map.

◆ reset()

template<typename WMResDb>
bool woss::WossManagerSimple< WMResDb >::reset ( )
overridevirtual

Deletes all created Woss instances

Returns
true if method was successful, false otherwise

Implements woss::WossManager.

References woss_map.

◆ setSpaceSampling()

template<typename WMResDb = WossManagerResDb>
void woss::WossManagerSimple< WMResDb >::setSpaceSampling ( double radius)
inlinestatic

Sets the radius in meters of a cartesian sphere, in which all coordinates are considered to be equivalent

Parameters
radiusradius >= 0.0 in meters

References space_sampling.

◆ timeEvolve()

template<typename WMResDb>
bool woss::WossManagerSimple< WMResDb >::timeEvolve ( const Time & time_value)
overridevirtual

Performs a time evoulion of all time-dependant parameters of all created Woss instances

Parameters
time_valueconst reference to a valid Time object
Returns
true if method was successful, false otherwise

Implements woss::WossManager.

References woss_map.

Member Data Documentation

◆ space_sampling

template<typename WMResDb = WossManagerResDb>
double woss::WossManagerSimple< WMResDb >::space_sampling
staticprotected

The radius in meters (>= 0.0) of a cartesian sphere, in which all coordinates are considered to be equivalent

Referenced by getSpaceSampling(), and setSpaceSampling().

◆ woss_map

template<typename WMResDb = WossManagerResDb>
WossContainer woss::WossManagerSimple< WMResDb >::woss_map
protected

Map containing all created Woss objects

Referenced by eraseActiveWoss(), getWoss(), reset(), timeEvolve(), and WossManagerSimple().


The documentation for this class was generated from the following file: