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 = 0.0
 
- 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

◆ ~WossManagerSimple()

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

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.

◆ getSpaceSampling()

template<typename WMResDb = WossManagerResDb>
static 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 woss::WossManagerSimple< WMResDb >::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.

◆ 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.

◆ setSpaceSampling()

template<typename WMResDb = WossManagerResDb>
static 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 woss::WossManagerSimple< WMResDb >::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.

Member Data Documentation

◆ space_sampling

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

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

Referenced by woss::WossManagerSimple< WMResDb >::getSpaceSampling(), and woss::WossManagerSimple< WMResDb >::setSpaceSampling().

◆ woss_map

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

Map containing all created Woss objects


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